scrapy shell和scrapyrt得到了403,但scrapy抓取工程

时间:2018-09-06 03:20:20

标签: python scrapy

我正在抓捕一个需要referer的网站。

我这样设置。

DEFAULT_REQUEST_HEADERS = {
  'Referer': 'http://www.referer.com'
}

当我在项目文件夹中尝试scrapy shell url(一个有scrapy.cfg)时,这意味着它在settings.py文件中使用了相同的设置,我可以看到{{1} },但收到了referer响应。

  

[scrapy.core.engine]调试:已抓取(403)https://my_url.com(引荐来源:http://www.referer.com

但是,403无需任何更改。

  

[scrapy.downloadermiddlewares.redirect]调试:将(302)从https://my_url.com>重定向到https://redirected_my_url.com>

我也是scrapy crawl my_spider,与scrapyrt的问题相同。

1 个答案:

答案 0 :(得分:0)

检查您网站的robots.txt。有时,它不存在。 如果robots.txt允许漫游器,则问题不太可能来自此。否则,您可以在settings.py或命令ng-mouseleave中编写ROBOTSTXT_OBEY = False。如您所愿。

关于用户代理。就用户代理而言,据我所知,在刮擦的外壳中一个就足够了,对于爬行的蜘蛛,最好创建一堆用户代理列表并使其随机。

如果这还不够。 最后,在您的settings.py或命令中使用scrapy crawl or shell -s ROBOTSTXT_OBEY = False,其值至少为1。使您的蜘蛛在爬网或外壳中的行为更像常规浏览器。您也可以使用DOWNLOAD_DELAY = 3,原因相同:

AUTOTHROTTLE_ENABLED = True