我正在尝试使用Scrapy记录站点内发生的每个链接。我正在使用SitemapSpider,但查看生成的CSV显示Spider永远不会达到超过1的深度 - 我希望它跟随它遇到的每个链接并从这些链接中抓取链接。默认情况下,深度限制应该是无限制的,但我在settings.py中添加了DEPTH_LIMIT为5作为测试,它没有任何效果。
(此外,“other_urls”规定似乎没有效果 - 该网址中没有显示任何结果。)
import scrapy
from tutorial.items import fffItem
from scrapy.spiders import SitemapSpider
class fffSpider(SitemapSpider):
name = "fff_sitemap"
sitemap_urls = ["http://fff.com/sitemap.xml"]
other_urls = ["http://www.fff.com/fff/default.aspx"]
def parse(self, response):
items = []
for sel in response.xpath('//a'):
item = fffItem()
item['link'] = sel.xpath('@href').extract()
item['sourceurl'] = response.url
item['depth'] = response.meta['depth']
items.append(item)
return items
我对Scrapy / Python一般都是新手,并查看了涉及SitemapSpider的已回答问题,但它们要么不适用,要么我没有完全理解它们。如果这是重复,请道歉。