【scrapy】其他问题2

时间:2023-01-08 07:35:34

今天爬取豆瓣电影的是时候,出现了两个问题:

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。