Python网页爬虫爬取豆瓣Top250电影数据——Xpath数据解析_爬虫电影(1)

2.3.2 通过xpath方法按层级查找数据

定位好之后,我们就可以用etree对象的xpath方法解析xpath表达式,查找到相应的数据。

定位到电影的标题所在标签,右键复制它的xpath:

//\*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1]

中文标题就在a标签下的第1个span标签中span[1],然后我们通过/text()获取该标签中的文本信息。

# 获取中文电影标题
title_cn = data.xpath('//\*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1]/text()')

而在a标签下的第二个span标签中包含的文本内容是电影的英文标题,所以我们只需要将span[1]改成span[2]就可以获取到电影的英文标题。

# 获取英文电影标题
title_en = data.xpath('//\*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[2]/text()')

Python网页爬虫爬取豆瓣Top250电影数据——Xpath数据解析_爬虫电影(1)_第1张图片
接下来获取电影详情页的链接,链接就在a标签中,是a标签的属性href的属性值,我们复制a标签的xpath。

//\*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a

定位到a标签,要取其属性href的值需要在该路径后加上/@href 即可。

# 获取电影详情页链接
detail_link = data.xpath('//\*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/@href')

将这些信息打印看一下是否获取到正确信息:
我们已经获取到了第一部电影的中英文标题和详情页链接,它们都各自存放在一个列表中。
Python网页爬虫爬取豆瓣Top250电影数据——Xpath数据解析_爬虫电影(1)_第2张图片

接下来我们可以用同样的方法获取电影的导演、主演、上映年份、国籍、类型和评分。

# 获取电影的导演和主演
people = data.xpath('//\*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[2]/p[1]/text()[1]')
# 获取电影的年份、国籍和类型
info = data.xpath('//\*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[2]/p[1]/text()[2]')
# 获取电影的评分
score = data.xpath('//\*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[2]/div/span[2]/text()')

打印数据:

你可能感兴趣的:(程序员,python,爬虫,开发语言)