在上一篇scrapy(low-level~python scrapy自动爬取网页的爬虫)[https://www.jianshu.com/p/9b07e556216e]中我们实现了翻页操作,但是这种操作不利于改动。这次改进为分模块编程的思想。
思路:
第一步:提取每页的链接
第二步:提取每页商品的链接
第三步:提取每页商品的具体信息
这里的难点在于
for i in range(1,3):
url ="http://category.dangdang.com/pg"+str(i)+"-cp01.05.16.00.00.00.html
#通过yield返回Reques,并指定要爬取的网址和回调函数
yield Request(url,callback=self.parse)
Request函数的参数callback,这个参数决定着接下来执行什么操作。
首先我们知道spider中初始的request是通过调用start_requests()来获取,start_requests()读取start_urls中的URL,所以我们每页链接的提取放在start_requests()中处理
def start_requests(self):
start_urls = ['http://category.dangdang.com/pg1-cp01.05.16.00.00.00.html',]
start,end=1,3
for i in range(start,end):
print(str(i))
url="http://category.dangdang.com/pg"+str(i)+"-cp01.05.16