Scrapy:努力实现爬网蜘蛛
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scrapy:努力实现爬网蜘蛛相关的知识,希望对你有一定的参考价值。
我一直在尝试实施网络抓取工具以删除标题并指出黑客新闻网站。通过使用正常的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
循环中修复数据提取过程。
以上是关于Scrapy:努力实现爬网蜘蛛的主要内容,如果未能解决你的问题,请参考以下文章