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

我为解决它所做的事情:


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


附加信息

指定为start_url的页面只有1个链接到页面a.html。 Scrapy会不断刮擦a.html。



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

最佳答案

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

关于python - 尽管dont_filter = False,Scrapy正在访问同一个网址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27717374/

10-12 20:10
查看更多