【问题标题】:Scrapy Impossible to get that fieldScrapy 无法获得该领域
【发布时间】:2017-09-20 23:57:18
【问题描述】:

我正在尝试抓取 4 个字段:图片、链接、名称、价格。

这段代码:

import scrapy
from scrapy import Request

#scrapy crawl jobs7 -o job7.csv -t csv
    class JobsSpider(scrapy.Spider):
        name = "jobs8"
        allowed_domains = ["vapedonia.com"]
        start_urls = ["https://www.vapedonia.com/11-mods-potencia-"]

        def parse(self, response):
            products = response.xpath('//div[@class="product-container clearfix"]')

            for product in products:
                image = product.xpath('div[@class="center_block"]/a/img/@src').extract_first()
                link = product.xpath('div[@class="center_block"]/a/@href').extract_first()
                name = product.xpath('div[@class="right_block"]/p/a/text()').extract_first()
                price = product.xpath('div[@class="right_block"]/div[@class="content_price"]/span[@class="price"]').extract_first()
                print image, link, name, price

得到一个错误。

我一直在尝试使用检查工具和插件创建我的 xpath 表达式。我自己也试过。它适用于网页,但不适用于脚本。

我已经打了一段时间了,我不知道发生了什么。

有人知道会发生什么吗?

谢谢!

PS:这是我得到的错误: 2017-09-21 07:55:31 [scrapy.core.engine] 信息:蜘蛛打开 2017-09-21 07:55:31 [scrapy.extensions.logstats] 信息:抓取 0 页(以 0 页/分钟),抓取 0 项(以 0 项/分钟) 2017-09-21 07:55:31 [scrapy.extensions.telnet] 调试:Telnet 控制台监听 127.0.0.1:6023 2017-09-21 07:55:32 [scrapy.core.engine] 调试:已爬网(200)https://www.vapedonia.com/robots.txt>(参考:无) 2017-09-21 07:55:32 [scrapy.core.engine] 调试:已爬网(200)https://www.vapedonia.com/11-mods-potencia->(参考:无) https://www.vapedonia.com/4688-home_default/-ipv-6x-azul-pionner4you.jpg https://www.vapedonia.com/pionner4you/2075--ipv-6x-azul-pionner4you.html IPV 6X AZUL - PIONNER4YOU 2017-09-21 07:55:32 [scrapy.core.scraper] 错误:蜘蛛错误处理 https://www.vapedonia.com/11-mods-potencia-> (参考:无) 回溯(最近一次通话最后): _runCallbacks 中的文件“C:\Users\eric\Miniconda2\lib\site-packages\twisted\internet\defer.py”,第 653 行 current.result = callback(current.result, *args, **kw) 解析中的文件“C:\Users\eric\Documents\Web Scraping\0 - Projets\Scrapy-\projects\craigslist\craigslist\spiders\jobs8.py”,第 18 行 打印图片、链接、名称、价格 文件“C:\Users\eric\Miniconda2\lib\encodings\cp850.py”,第 12 行,编码 返回 codecs.charmap_encode(输入,错误,encoding_map) UnicodeEncodeError:“charmap”编解码器无法在位置 26 编码字符 u'\u20ac':字符映射到 2017-09-21 07:55:32 [scrapy.core.engine] 信息:关闭蜘蛛(完成) 2017-09-21 07:55:32 [scrapy.statscollectors] 信息:倾销 Scrapy 统计数据:

【问题讨论】:

  • 你看到了什么错误?
  • 我现在得到的唯一错误与源代码的错误缩进有关。如果更正,它对我有用。
  • 代码运行正常,请发布完整的异常详情
  • 所以它对我不起作用。我刚刚在初始消息中输入了错误。

标签: python scrapy


【解决方案1】:

这是一个字符集问题,我写的是:price = product.xpath('div[@class="right_block"]/div[@class="content_price"]/span[@class="price" ]').extract_first().encode("utf-8")

这对我来说是一个正确的解决方案,但可能可以在文件级别进行设置。

【讨论】:

  • 只有一件事:就在上课之前,我写了:#scrapy crawl jobs7 -o job7.csv -t csv 但这不是我用来抓取蜘蛛的,我使用 #scrapy crawl jobs8 -o 工作 8.csv -t csv。我通常进行大量测试,我习惯于创建新文件来复制现有文件,该文件通常是最后一个文件创建的。只是为了说明错误不是由此造成的。
猜你喜欢
  • 2017-04-01
  • 2016-04-30
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多