练习题:Quotes to Scrapes【谚语网站】 等级:初级
爬取每条谚语的信息(谚语、作者、标签、作者出生日期、作者出事地点、作者基本描述)
思路:
1、初始url[网站网址]:http://quotes.toscrape.com/
2、得到初始url的response,传递给parse1函数(负责解析第一级页面),解析response;
3、获取到每条谚语下一级页面的url,将其链接传递给parse2函数(负责解析第二级页面)入队列;
4、parse2函数会解析每个二级页面的url的response,得到最终数据;
易忽略点:
1、因为谚语的二级页面的url是根据作者来定义url路径的,因此有很多重复的二级url,需要不去重操作;
2、定位元素的时候要多观察页面元素的结构,在爬取的过程中,因为定位“下一页”元素写的不精准导致总是少了很多条数据,一开始以为是去重机制导致的,加上了不去重却让爬虫陷入了死循环。
next_url = response.xpath('//ul[@class="pager"]//a/@href').extract()[0]
if next_url is not None:
yield scrapy.Request(url=self.base_url + next_url,