问题: Scrapy不断访问单个网址并继续以递归方式抓取它。我检查了response.url以确保这是一个单独的页面,它一直在抓取,并且没有涉及可能为不同的URL呈现相同页面的查询字符串。
我做了什么来解决它:
其他信息
作为start_url给出的页面只有一个指向页面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
答案 0 :(得分:1)
默认情况下,Scrapy会追加到输出文件中(如果存在)。您在output.csv
中看到的是多个蜘蛛运行的结果。在再次运行蜘蛛之前删除output.csv
。