[2]个人学习python:爬取豆瓣单个电影

本文通过Python爬虫抓取豆瓣电影详情页的数据,包括电影名称、导演、演员及类型等信息,并介绍了如何利用XPath解析HTML页面,重点讲解了normalize-space()函数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下:

# -*- coding: utf-8 -*
import requests,time
from lxml import etree
url='https://movie.douban.com/subject/1849031/?from=subject-page'
html=requests.get(url).text                       #此处获取html网页代码
s=etree.HTML(html)                               #此处获取html节点对象
film_name=s.xpath('//*[@id="content"]/h1/span[1]/text()')[0]
director=s.xpath('//*[@id="info"]/span[1]/span[2]/a/text()')
directors=','.join(director)
actor=s.xpath('//*[@id="info"]/span[3]/span[2]/a/text()')
actors=','.join(actor)
cls=s.xpath('//*[@id="info"]/span[@property="v:genre"]/text()')
clss=','.join(cls)
print ('电影名:',film_name,'\n导演:',directors,'\n主演:',actors,'\n类型:',clss)
actor=s.xpath('normalize-space(//*[@id="info"]/span[3]/span[2]/a/text())')
print ('主演:',actor,'   //','normalize-space()等同于[0]')

结果如下:


小结:

1、使用xpath拿到得都是一个个的节点对象,即列表,所以如果需要查找内容的话,还需要遍历拿到数据的列表;
2、也可用normalize-space()或加[0],两者都是取的第一个值,但normalize-space()会去掉转义字符;或用join()函数;
3、切记:浏览器复制xpath 不是完全可靠的,可以去网页源码看看是否这一层级。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值