Python Scrapy正在访问同一个Url,尽管dont\u filter=False

Python Scrapy正在访问同一个Url,尽管dont\u filter=False,python,scrapy,Python,Scrapy,问题:Scrapy不断访问单个url并不断递归地对其进行刮取。我已经检查了response.url,以确保这是一个它一直在抓取的单个页面,并且没有涉及可能为不同url呈现相同页面的查询字符串 我为解决它所做的一切: 在Scrapy/spider.py下,我注意到dont_filter设置为True,并将其更改为False。但这没用 我在代码中也设置了unique=True,但这也没有帮助 其他信息 作为起始url提供的页面只有一个指向a.html页面的链接。Scrapy一次又一次地刮a.html

问题:Scrapy不断访问单个url并不断递归地对其进行刮取。我已经检查了response.url,以确保这是一个它一直在抓取的单个页面,并且没有涉及可能为不同url呈现相同页面的查询字符串

我为解决它所做的一切:

  • 在Scrapy/spider.py下,我注意到dont_filter设置为True,并将其更改为False。但这没用
  • 我在代码中也设置了unique=True,但这也没有帮助 其他信息

    作为起始url提供的页面只有一个指向a.html页面的链接。Scrapy一次又一次地刮a.html

    代码


    默认情况下,Scrapy将附加到输出文件中(如果存在)。您在
    output.csv
    中看到的是多个spider运行的结果。再次运行spider之前,请删除
    output.csv

    如何运行spider以及您有哪些设置?你用的是什么胶皮版?谢谢。仅供参考,我无法重现这个问题-我只访问了一次URL。亲爱的Alecxe,我使用的是scrapy 0.24.4。我使用了命令“scrapy scrawl dmoz-tcv-o output.csv”。奇怪的是,您只能看到url访问一次,my settings.py是否有问题?my seetings.py有以下设置。很抱歉,我上一次在“推荐”中点击了回车键,它发表了评论BOT_NAME='kt'SPIDER_MODULES=['kt.SPIDER']NEWSPIDER_MODULE='kt.SPIDER'USER_AGENT='Mozilla/5.0(Windows NT 5.1;rv:31.0)Gecko/20100101 Firefox/31.0'每个域并发请求=2下载延迟=1'奇怪,你的dmoz SPIDER到底包含哪些代码?它与问题中的完全相同吗?是的,我知道输出是附加的。我尝试使用新文件,也尝试使用不同的不存在的文件名,但都是一样的。谢谢你花时间解决这个问题。如果我发送蜘蛛目录zip会有帮助吗?可能在my settings.py或items.py中有一些内容?@AkashJain谢谢,是的,请共享您的项目(例如,在github上上载)。我来看看。你好,Alecxe,谢谢。我发现我错在哪里了。我不应该有for循环,它又在重复同样的东西。我正在学习这些东西,只是在示例代码中插入了一些XPath。
    from scrapy.contrib.spiders import CrawlSpider, Rule
    from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
    from scrapy.selector import Selector
    from kt.items import DmozItem
    
    class DmozSpider(CrawlSpider):
        name = "dmoz"
        allowed_domains = ["datacaredubai.com"]
        start_urls = ["http://www.datacaredubai.com/aj/link.html"]
        rules = (
        Rule(SgmlLinkExtractor(allow=('/aj'),unique=('Yes')), callback='parse_item'), 
        )
    
    
    def parse_item(self, response):
        sel = Selector(response)
        sites = sel.xpath('//*') 
        items = []
        for site in sites:
            item = DmozItem()
            item['title']= site.xpath('/html/head/meta[3]').extract()         
            item['req_url']= response.url            
            items.append(item)
        return items