使用Python Scrapy时的HTTP 403响应

我在Windows Vista 64位上使用Python.org版本2.7 64位。我一直在测试以下Scrapy代码以递归方式Scrapy所有页面,该页面用于足球统计数据:

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'])

该代码正在执行,没有任何错误,但是在Scrapy的4623个页面中,有217个的HTTP响应代码为200,第2个的代码为302,第4404个的代码为403。任何人都可以在代码中立即看到任何关于为什么会这样的明显信息吗?难道这是该站点的Scrapy措施?是否通常通过减慢提交次数来阻止这种情况的发生?

回答:

HTTP状态码403绝对意味着“ 禁止/拒绝访问”。

HTTP状态代码302用于重定向请求。无需担心它们。

你的代码似乎没有错。

是的,这绝对是网站实施的一项防Scrapy措施。

以上是 使用Python Scrapy时的HTTP 403响应 的全部内容, 来源链接: utcz.com/qa/424666.html

回到顶部