scrapy其他问题2
Posted hahachangefromnow
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapy其他问题2相关的知识,希望对你有一定的参考价值。
今天爬取豆瓣电影的是时候,出现了两个问题:
1.数据无法爬取并输出Retrying <GET https://movie.douban.com/robots.txt> 看起来像是被拦截了。
解决:去setting下面找到ROBOTSTXT_OBEY默认是True 改为 False
然后,网上搜索了一下这个参数,这个博客https://blog.csdn.net/you_are_my_dream/article/details/60479699里相关解释。我这里就引用一下:
观察代码可以发现,默认为True,就是要遵守robots.txt 的规则,那么 robots.txt 是个什么东西呢?
通俗来说, robots.txt 是遵循 Robot协议 的一个文件,它保存在网站的服务器中,它的作用是,告诉搜索引擎爬虫,本网站哪些目录下的网页 不希望 你进行爬取收录。在Scrapy启动后,会在第一时间访问网站的 robots.txt 文件,然后决定该网站的爬取范围。
当然,我们并不是在做搜索引擎,而且在某些情况下我们想要获取的内容恰恰是被 robots.txt 所禁止访问的。所以,某些时候,我们就要将此配置项设置为 False ,拒绝遵守 Robot协议 !
好了,能重新爬到数据以后,出现了另一个问题:
2.pymongo.errors.ServerSelectionTimeoutError: 127.0.0.1:2017: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
明显是一个数据库连接的问题,但是继上一篇解决了MongoDB连接问题之后,电脑的cmd或者studio 3T都能连接,很疑惑为什么pymongo不能连。百度中甚至有人提出是python3的问题
我目前使用的是虚拟环境下的python3.6。后来再排查,发现其实是自己setting里,把端口号写错了2017应改为27017。
以上是关于scrapy其他问题2的主要内容,如果未能解决你的问题,请参考以下文章
Scrapy - 为项目中的特定蜘蛛(而不是其他蜘蛛)使用提要导出器
使用 Scrapy Selector 提取包含其他元素内容的段落文本
解决django或者其他线程中调用scrapy报ReactorNotRestartable的错误