今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习。话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的。
python环境:python3.5
先看看网页的样子
豆瓣电影网站链接
我们下面将要对电影的名字、链接、评分、评价人数和一句话描述这些信息进行提取
1、检查并复制电影名字的xPath信息
电影《肖申克的救赎》的xPath信息如下:
//*[@id=”content”]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1]
按照爬虫的代码套路来一波
from lxml import etree
import requests
url = 'https://movie.douban.com/top250'
data = requests.get(url).text
s = etree.HTML(data)
title = s.xpath('//*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1]/text()')[0]
print(title)
输出结果:
第六行代码最后加[0],是因为不加的话,返回的则会是一个列表,不好看。
2、对同一页的不同电影名字进行提取
根据《肖申克的救赎》同方法对《霸王别姬》、《这个杀手不太冷》和《阿甘正传》的xPath信息比较:
比较可以发现电影名的xPath信息仅仅li后面的序号不一样,并且和电影名的序号一样,所以去掉序号以后,就可以得到通用的xPath信息
//*[@id="content"]/div/div[1]/ol/li/div/div[2]/div[1]/a/span[1]
接下来我们把这一页的电影名字个爬下来
from lxml import etree
import requests
url = 'https://movie.douban.com/top250'
data = requests.get(url).text
s = etree.HTML(data)
title = s.xpath('//*[@id=&#