首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -从模块导入类的实例

Python -从模块导入类的实例
EN

Stack Overflow用户
提问于 2016-09-23 22:50:21
回答 1查看 1.2K关注 0票数 1

我用parse()创建了这个类

代码语言:javascript
复制
class PitchforkSpider(scrapy.Spider):
    name = "pitchfork_reissues"
    allowed_domains = ["pitchfork.com"]
    #creates objects for each URL listed here
    start_urls = [
                    "http://pitchfork.com/reviews/best/reissues/?page=1",
                    "http://pitchfork.com/reviews/best/reissues/?page=2",
                    "http://pitchfork.com/reviews/best/reissues/?page=3",
    ]

    def parse(self, response):

        for sel in response.xpath('//div[@class="album-artist"]'):
            item = PitchforkItem()
            item['artist'] = sel.xpath('//ul[@class="artist-list"]/li/text()').extract()
            item['reissue'] = sel.xpath('//h2[@class="title"]/text()').extract()

        return item

然后导入module,其中class属于:

代码语言:javascript
复制
from blogs.spiders.pitchfork_reissues_feed import *

并尝试在另一个上下文中调用parse()

代码语言:javascript
复制
def reissues(self):

    pitchfork_reissues = PitchforkSpider()
    reissues = pitchfork_reissues.parse('response')
    print (reissues)

但我得到了以下错误:

代码语言:javascript
复制
pitchfork_reissues.parse('response')
  File "/Users/vitorpatalano/Documents/Code/Soup/Apps/myapp/blogs/blogs/spiders/pitchfork_reissues_feed.py", line 21, in parse
    for sel in response.xpath('//div[@class="album-artist"]'):
AttributeError: 'str' object has no attribute 'xpath'

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-23 23:00:55

您使用字符串文字调用parse

代码语言:javascript
复制
reissues = pitchfork_reissues.parse('response')

我想那应该是个可变的名字吧?就像这样:

代码语言:javascript
复制
reissues = pitchfork_reissues.parse(response)

编辑

蜘蛛的parse方法需要一个scrapy.http.Response的实例,作为它的第一个参数,而不是包含单词'response‘的字符串文本。

我自己也没有使用Scrapy,所以我只知道我在文档中看到了什么,但是很明显,这样的响应实例通常是由'Downloader‘创建的。

看起来,您试图在Scrapy通常的工作流之外调用您的Spider的parse方法。在这种情况下,我认为您应该负责创建这样一个响应,并在调用它是parse方法时将其传递给您的蜘蛛。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39670621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档