Python 函数在Scrapy递归webscraper中不起作用

Python 函数在Scrapy递归webscraper中不起作用,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我在Windows Vista 64位上使用Python.org 2.7 64位版本。我有一些递归的webscraping代码,这些代码被我正在查看的网站上的反刮擦措施捕获: from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from scrapy.selector import Selector from sc

我在Windows Vista 64位上使用Python.org 2.7 64位版本。我有一些递归的webscraping代码,这些代码被我正在查看的网站上的反刮擦措施捕获:

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
import time


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')  
            time.sleep(5)

execute(['scrapy','crawl','goal3'])
为了防止这种情况发生,我尝试添加一个基本的“time.sleep()”函数来降低提交速度。但是,当通过命令提示符运行代码时,此函数似乎没有任何效果。代码继续以相同的速度运行,因此所有请求返回为HTTP403

有人知道为什么这可能不起作用吗

谢谢

不要重新发明轮子。设置是您要查找的内容:

下载程序在此之前应等待的时间量(以秒为单位) 从同一网站下载连续页面。这是可以使用的 限制爬行速度以避免对服务器造成过大的冲击

还有其他技术,如旋转用户代理、IP地址,请参阅第节的更多内容


此外,请确保您了解网站的
使用条款。确保他们没有声明反对web爬行以及站点是否提供API。

如果您想使此行为动态化,您应该查看。