繁体   English   中英

Scrapy:努力实现爬行蜘蛛

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM