Scrapy 爬虫无法爬取数据

问题描述 投票:0回答:1

这是代码,它没有从页面收集数据,我不知道为什么, Vscode : SyntaxError: 'yield' 外部函数 和 jupyter notebook 没有任何错误。

class multiSpider(scrapy.Spider):
        name='multiple'
        start_url = [
            'https://forum.moshaver.co/f232/',
            'https://forum.moshaver.co/f233/',
            'https://forum.moshaver.co/f241/',
            'https://forum.moshaver.co/f231/',
        ]       
def parse(self, response):
    for data in response.css('h3.threadtitle'):
        yield {
               'title': data.css('h3.threadtitle :: text').get(),
               'answers' : data.css('threadstats td alt :: text').get(),
               'writer' : data.css ('a.username offline popupctrl :: text').get(),
               'date_time' : data.css('span.label a::text').get(),
           } 
        next_page = response.css('span.selected pageitem a::attr(href)').get()
        if next_page:
            next_page = response.urljoin('next_page')
            yield scrapy.Request (url= next_page, callback = self.parse)
scrapy web-crawler
1个回答
0
投票

我看到他们唯一的问题是这个对象中的右括号缩进了 3 个空格而不是 4 个空格,这可能是你在 vscode 中遇到问题但在 jupyter 中没有问题的原因

 yield {
           'title': data.css('h3.threadtitle :: text').get(),
           'answers' : data.css('threadstats td alt :: text').get(),
           'writer' : data.css ('a.username offline popupctrl :: text').get(),
           'date_time' : data.css('span.label a::text').get(),
    } 
 next_page = response.css('span.selected pageitem a::attr(href)').get()

如果您正在寻找更准确的建议,请分享完整的错误信息。 此外,您似乎有两个不同的问题:

  1. 你的代码有一个语法问题,你在使用 vscode 时会看到(注意:vscode 只是编辑器,实际的 python 解释器是你在运行脚本时在命令行中看到的)
  2. 你的代码没有报废任何东西或者甚至没有开始 -> 这更可能是代码本身的问题,如果没有看到你正在报废的实际页面就很难说
© www.soinside.com 2019 - 2024. All rights reserved.