未执行回调的 Scrapy 请求

克里斯

我的蜘蛛跑得这么好。一切正常,但这一点:

# -*- coding: utf-8 -*-
import scrapy

from info.items import InfoItem

class HeiseSpider(scrapy.Spider):
    name = "heise"

    start_urls = ['https://www.heise.de/']

    def parse(self, response):
        print ( "Parse" )
        yield scrapy.Request(response.url,callback=self.getSubList)

    def getSubList(self,response):
        item = InfoItem()

        print ( "Sub List: Will it work?" )
        yield(scrapy.Request('https://www.test.de/', callback = self.getScore, dont_filter=True))
        print ( "Should have" )

        yield item

    def getScore(self, response):
        print ( "--------- Get Score ----------")
        print ( response )

        return True

输出是:

Will it work?
Should have

为什么getScore没有被调用?我究竟做错了什么?

编辑:将代码更改为具有相同问题的准系统版本 - 未调用 getScore

完成数据解决方案

刚刚进行了一次测试运行,它按预期完成了所有回调:

...
2017-05-13 12:27:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.heise.de/> (referer: None)
Parse
2017-05-13 12:27:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.heise.de/> (referer: https://www.heise.de/)
Sub List: Will it work?
Should have
2017-05-13 12:27:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.test.de/> (referer: https://www.heise.de/)
--------- Get Score ----------
<200 https://www.test.de/>
2017-05-13 12:27:59 [scrapy.core.scraper] ERROR: Spider must return Request, BaseItem, dict or None, got 'bool' in <GET https://www.test.de/>
2017-05-13 12:27:59 [scrapy.core.engine] INFO: Closing spider (finished)
2017-05-13 12:27:59 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 693,
...

没有任何日志输出和 settings.py 丢失它有点猜测但很可能在您的 settings.py 中是一个ROBOTSTXT_OBEY=True.

这意味着scrapy 将尊重robots.txt 文件施加的任何限制,并且https://www.test.de有一个不允许爬行的robots.txt。

因此,将 settings.py 中的 ROBOTSTXT 行更改为ROBOTSTXT_OBEY=False它应该可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

跟随链接时,Python scrapy 请求不执行回调

来自分类Dev

Scrapy请求回调不触发

来自分类Dev

重定向请求的回调Scrapy

来自分类Dev

scrapy:信号调用产生的回调请求

来自分类Dev

Scrapy请求-嵌套请求中未调用回调函数

来自分类Dev

HTTP请求回调未执行-为什么?

来自分类Dev

scrapy:了解项目和请求在回调之间如何工作

来自分类Dev

scrapy请求未产生任何输出

来自分类Dev

scrapy请求未产生任何输出

来自分类Dev

一个scrapy回调函数可以指向产生请求的同一个函数吗

来自分类Dev

Scrapy忽略请求

来自分类Dev

Scrapy堆栈的请求溢出

来自分类Dev

Scrapy 中的限制请求

来自分类Dev

Node.JS请求模块回调未触发

来自分类Dev

了解Scrapy中的回调

来自分类Dev

Python Scrapy 不为每个链接执行scrapy.Request 回调函数

来自分类Dev

Scrapy:限制请求或请求字节数

来自分类Dev

如何限制scrapy请求对象?

来自分类Dev

使用scrapy发出POST请求

来自分类Dev

使用scrapy提取XHR请求?

来自分类Dev

在Scrapy中发送发帖请求

来自分类Dev

使用scrapy提取XHR请求?

来自分类Dev

循环中的Scrapy通话请求

来自分类Dev

Scrapy不发出POST请求

来自分类Dev

SCRAPY SPIDER - 发送帖子请求

来自分类Dev

scrapy_splash.SplashRequest在scrapyd计划时不执行回调函数

来自分类Dev

Ajax回调未执行

来自分类Dev

未执行 asyncjs 回调

来自分类Dev

Scrapy-splash - lua_script 中的 splash:go(url) 是否再次执行 GET 请求?