Я пытаюсь использовать Scrapy для записи каждой ссылки, которая встречается внутри сайта. Я использую SitemapSpider, но просмотр результирующего CSV показывает, что Spider никогда не достигает глубины более 1 - я хочу, чтобы он следил за каждой связью, с которой он сталкивается, и очищает ссылки от них. Ограничение по глубине должно быть неограниченным по умолчанию, но я добавил DEPTH_LIMIT из 5 в settings.py в качестве теста, и это не повлияло.Как заставить Scrap's SitemapSpider выполнять сканирование на глубину более 1?
(Кроме того, «other_urls» условие кажется, не имеет никакого эффекта - никаких результатов с этого URL не отображаются в формате CSV.)
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, но они либо не применялись, либо я не полностью их понимал. Извините, если это повторение.