记一次学python爬虫经历
爬豆瓣top250图书信息(包括书名,评分,热评)
首先,我需要用到lxml和requests 这两个库来抓取或下载所需元素
from lxml import etree
import requests
#找到目标网页,审查需要抓取的元素
url='https://book.douban.com/top250'
data=requests.get(url).text
s=etree.HTML(data)
file=s.xpath('//*[@id="content"]/div/div[1]/div/table[1]/tbody/tr/td[2]/div[1]/a/@title')
print(file)
!!!不要忘了在复制下来的xpath地址后加 @title
这里出现一个很奇怪的问题,跟着步骤走却出现了不一样的结果。(怎么是空的?)
去网上一问才知道,浏览器复制的 xpath 信息并不是完全可靠的,浏览器经常会自己在里面增加多余的 tbody 标签,需要手动把这些标签删掉
删掉tbody后,
file=s.xpath('//*[@id="content"]/div/div[1]/div/table[1]/tr/td[2]/div[1]/a/@title')
总算是出现了
接下来的几页可以看出有明显规律和相同的地方:
//*[@id="content"]/div/div[1]/div/table[1]/tbody/tr/td[2]/div[1]/a
//*[@id="content"]/div/div[1]/div/table[2]/tbody/tr/td[2]/div[1]/a
//*[@id="content"]/div/div[1]/div/table[3]/tbody/tr/td[2]/div[1]/a