Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python Scrapy时的HTTP 403响应_Python_Http_Scrapy - Fatal编程技术网

使用Python Scrapy时的HTTP 403响应

使用Python Scrapy时的HTTP 403响应,python,http,scrapy,Python,Http,Scrapy,我在Windows Vista 64位上使用Python.org 2.7 64位版本。我一直在测试以下Scrapy代码,以递归地刮取网站www.whoscored.com上的所有页面,该网站用于足球统计: from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from scrapy.selector import S

我在Windows Vista 64位上使用Python.org 2.7 64位版本。我一直在测试以下Scrapy代码,以递归地刮取网站www.whoscored.com上的所有页面,该网站用于足球统计:

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import Selector
from scrapy.item import Item
from scrapy.spider import BaseSpider
from scrapy import log
from scrapy.cmdline import execute
from scrapy.utils.markup import remove_tags


class ExampleSpider(CrawlSpider):
    name = "goal3"
    allowed_domains = ["whoscored.com"]
    start_urls = ["http://www.whoscored.com/"]
    rules = [Rule(SgmlLinkExtractor(allow=()), 
                  follow=True),
             Rule(SgmlLinkExtractor(allow=()), callback='parse_item')
    ]
    def parse_item(self,response):
        self.log('A response from %s just arrived!' % response.url)
        scripts = response.selector.xpath("normalize-space(//title)")
        for scripts in scripts:
            body = response.xpath('//p').extract()
            body2 = "".join(body)
            print remove_tags(body2).encode('utf-8')  


execute(['scrapy','crawl','goal3'])
代码正在执行,没有任何错误,但是在4623个页面中,217个页面的HTTP响应代码为200,2个页面的代码为302,4404个页面的响应代码为403。有人能在代码中看到任何明显的东西来解释为什么会这样吗?这可能是现场的防刮措施吗?为了阻止这种情况发生,是否通常会放慢提交的数量


谢谢

HTTP状态码403明确表示禁止/拒绝访问
HTTP状态代码302用于重定向请求。不必为他们担心。
您的代码中似乎没有任何错误

是的,这肯定是网站实施的一项反刮措施

请参阅Scrapy文档中的以下指南:


也是,你应该考虑。

< P>我不这样做,如果这个仍然可用,但是我必须把下一行放在SETIONG.PY文件中:


希望能有所帮助。

这在我第一次跑步时就奏效了,然后就停止了
HTTPERROR_ALLOWED_CODES  =[404]
USER_AGENT = 'quotesbot (+http://www.yourdomain.com)'
USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36"