网站更新内容:请访问: https://bigdata.ministep.cn/

scrapy知识点

extract_first() 会避免 IndexError ,并且在找不到与选择匹配的元素时返回 None

另一件事是调用 .extract() 的结果是一个列表,因为我们处理的是 SelectorList 的一个实例。当您知道你只想要第一个结果,在这种情况下,您可以做:

>>> response.css('title::text').extract_first()
'Quotes to Scrape'
此外,您还可以这样做:

>>> response.css('title::text')[0].extract()
'Quotes to Scrape'

使用 .extract_first() 会避免 IndexError ,并且在找不到与选择匹配的元素时返回 None 。

爬虫出现Forbidden by robots.txt

先说结论,关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,设置为False即可解决。
使用scrapy爬取淘宝页面的时候,在提交http请求时出现debug信息Forbidden by robots.txt,看来是请求被拒绝了。
这个文件中规定了本站点允许的爬虫机器爬取的范围(比如你不想让百度爬取你的页面,就可以通过robot来限制),因为默认scrapy遵守robot协议,所以会先请求这个文件查看自己的权限,而我们现在访问这个url得到
参考资料:爬虫出现Forbidden by robots.txt

posted @ 2021-03-28 19:08  ministep88  阅读(96)  评论(0)    收藏  举报
网站更新内容:请访问:https://bigdata.ministep.cn/