【pyspider】启动爬虫后在results页面没有看到结果

时间:2024-07-31 21:04:14

今天根据书上的介绍写了一个简单爬虫,爬取豌豆荚里面APP的基本信息,但是在调试结果正常后,发现跳转到result页面后没有看到结果。

后来上网查了一下,发现要在def detail_page(self, response)方法的前面加上@config(priority=2)

即:

@config(priority=2)
def detail_page(self,response):
title=response.doc('p > [itemprop="name"]').text()
updateDate=response.doc('[itemprop="datePublished"]').attr.datetime
version=response.doc('div[class="download-wp"]>a').attr('data-app-vname')
developer=response.doc('dd > span[itemprop="name"]').text()
size=response.doc('.infos-list > dd>meta[itemprop="fileSize"]').attr.content
downloadLink=response.doc('.qr-info > a').attr.href
packagename=response.doc('div[class="download-wp"]>a').attr('data-app-pname')

return {
"title": title,
"updateDate": updateDate,
"version":version,
"developer":developer,
"size":size,
"downloadLink":downloadLink,
"packagename":packagename

}

果然在再次启动后可以在result页面看到结果。

后来就去搜索@config(priority=2) 这个是什么意思,发现原来这个是优先级设置。数字越小越先执行。

然后方法前面还可以做以下这些设置:

  • @every(minutes=24*60, seconds=0) 这个设置是告诉scheduler(调度器)on_start方法每天执行一次。
  • @config(age=10 * 24 * 60 * 60) 这个设置告诉scheduler(调度器)这个request(请求)过期时间是10天,10天内再遇到这个请求直接忽略。这个参数也可以在self.crawl(url, age=10*24*60*60) 和 crawl_config中设置。

这些相关知识来自https://blog.****.net/qq_33052539/article/details/52850199