首页 > 解决方案 > 缺少 1 个必需的位置参数:“响应”scrapy

问题描述

刚接触scrapy只是想弄清楚我是否可以用它来抓取我正在阅读的网络连续剧,这样我就可以在去学校的路上离线阅读它,但我不知道如何解决这个错误我一直保留得到。

类型错误:parse_wordpress() 缺少 1 个必需的位置参数:“响应”

我认为这意味着该网站没有正确对应,但我想不出解决问题的方法。

    import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.selector import HtmlXPathSelector
from scrapy.linkextractors import LinkExtractor

class BlogrollSpider(CrawlSpider):
    name = 'BLOG ARCHIVER'
    allowed_domains = ['blogroll.com', 'wordpress.com', 'blogspot.com']
    start_urls = ['https://parahumans.wordpress.com/2011/06/11/1-1/']
    rules = (
        Rule(LinkExtractor(allow=(),
        restrict_xpaths=('//p[@title="Next Chapter"]',)),
        callback="parse_wordpress",
        follow= True),
        )

    def parse_wordpress(self, response):
        hxs = HtmlXPathSelector(response)
        paragraphs = hxs.select("//p")
        for paragraphs in paragraphs:
            paragraph = paragraphs.select("a/text()").extract()
            print (paragraph)

        return item
blog1 = BlogrollSpider()
blog1.parse_wordpress()
print ("code is reaching here")

这是我要下载的网站/网络连续剧:' https://parahumans.wordpress.com/2011/06/11/1-1/ '

标签: pythonscrapyspyder

解决方案


你不应该直接调用你的 parse 函数。当 Scrapy 得到响应时,它会自动调用。

相反,请使用命令行 runner。例如,如果您有一个完整的项目:

scrapy crawl "BLOG ARCHIVER"

或者,如果您只有一个蜘蛛文件:

scrapy runspider my_spider.py

或者,编写自定义运行器脚本

顺便说一句,我建议您阅读官方教程,因为它涵盖了如何运行蜘蛛。


推荐阅读