Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 刮擦错误:exceptions.AttributeError:&x27;HtmlResponse';对象没有属性';urljoin';_Python_Web Scraping_Scrapy - Fatal编程技术网

Python 刮擦错误:exceptions.AttributeError:&x27;HtmlResponse';对象没有属性';urljoin';

Python 刮擦错误:exceptions.AttributeError:&x27;HtmlResponse';对象没有属性';urljoin';,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我已经使用pip安装了scrapy,并尝试了scrapy文档中的示例 我收到错误无法导入名称xmlrpc\u客户端 在研究了一个问题之后 我用电脑把它修好了 sudo pip uninstall scrapy sudo pip install scrapy==0.24.2 但现在它向我显示了异常。AttributeError:'HtmlResponse'对象没有属性'urljoin' 这是我的密码: import scrapy class StackOverflowSpider(scra

我已经使用pip安装了scrapy,并尝试了scrapy文档中的示例

我收到错误
无法导入名称xmlrpc\u客户端

在研究了一个问题之后 我用电脑把它修好了

sudo pip uninstall scrapy

sudo pip install scrapy==0.24.2
但现在它向我显示了
异常。AttributeError:'HtmlResponse'对象没有属性'urljoin'

这是我的密码:

import scrapy


class StackOverflowSpider(scrapy.Spider):
    name = 'stackoverflow'
    start_urls = ['https://stackoverflow.com/questions?sort=votes']

    def parse(self, response):
        for href in response.css('.question-summary h3 a::attr(href)'):
            full_url = response.urljoin(href.extract())
            yield scrapy.Request(full_url, callback=self.parse_question)

    def parse_question(self, response):
        yield {
            'title': response.css('h1 a::text').extract()[0],
            'votes': response.css('.question .vote-count-post::text').extract()[0],
            'body': response.css('.question .post-text').extract()[0],
            'tags': response.css('.question .post-tag::text').extract(),
            'link': response.url,
        }
有人能帮我吗

在Scrapy>=0.24.2中,
HtmlResponse
类还没有
urljoin()
方法。直接使用:

full_url = urlparse.urljoin(response.url, href.extract())
别忘了导入它:

import urlparse
请注意,在Scrapy 1.0中添加了
urljoin()
alias/helper,以下是相关问题:

以下是:


您正在使用的示例代码适用于scrapy 1.0。由于您已降级到0.24,因此需要使用
urlparse
中的
urljoin

full_url = urljoin(response.url, href.extract())

如果您单击示例上方的“Scrapy 0.24(旧版本)”按钮,您将获得您正在使用的Scrapy版本的示例代码。

但是他们网站上显示的示例怎么可能是错误的?当我尝试使用URLPASSE时,它给了我
urljoin()至少2个参数(1个给定)
@user3437315该示例适用于Scrapy 1.0,而您使用的是0.24.2tanks,但是我在哪里可以得到Scrapy 0.24.2的文档呢?他们的网站上似乎没有website@user3437315尝试卸载scrapy并重新安装。我做到了。我得到无法导入名称xmlrpc_客户端错误!我也试着重新安装了六个,但没有成功!
full_url = urljoin(response.url, href.extract())