Я пытался внедрить веб-сканер, чтобы отбирать заголовки и указывать на хакерский новостной сайт. Я успешно разбирал его, используя обычный класс scrapy.spider. Однако я хотел бы иметь надежный способ обхода ссылок с помощью экстрактора ссылок. Вот мои текущие настройки:
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class QuotesSpider(CrawlSpider):
name = "crawl"
allowed_domains = ['news.ycombinator.com']
start_urls = [
'https://news.ycombinator.com/news?p=2',
]
rules = [
Rule(LinkExtractor(allow=r'news?p=[3-9]'), callback='parse_news', follow=True)
]
def parse_news(self, response):
data = {}
title = response.xpath("//td/a[@class='storylink']/text()").getall()
point = response.xpath("//td[@class='subtext']/span/text()").getall()
length = len(title)
for each in range(length):
data["title"] = title[each]
data["point"] = point[each]
yield data
Я не могу получить какую-либо информацию, сохраненную в json после выполнения этого.