[英]Scrapy: Struggling to Implement a Crawl Spider
我一直在尝试实现一个网络爬虫来抓取标题并指出黑客新闻网站。 我通过使用普通的 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 中。
您的代码有很多错误,但第一步,您必须修复 LinkExtractor:
Rule(LinkExtractor(allow=r'news\?p=[3-9]'), callback='parse_news', follow=True)
问号是正则表达式中的一个特殊字符,所以你必须在它前面加上一个\\
。 接下来,您必须修复for
循环中的数据提取过程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.