问题标签 [scrapy-item]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
114 浏览

python - 用于 Scrapy 中的项目的 has_key

我想检查是否在 Scrapy 项目中设置了字段。但我has_key在该项目上使用,我收到此错误:

如何在不使用 has_key 的情况下检查字段是否设置?

0 投票
1 回答
771 浏览

python-3.x - 如何从scrapy python下载图像并将它们保存到文件夹及其变量中的路径

我想下载一个图像和 url 看起来像这样"/get.aspx?id=1988147" ,并将下载的图像保存到一个文件中,保存路径在项目中,如item['image'].

0 投票
1 回答
68 浏览

python - 如何不从 __init__ 返回对象引用

我是 ItemLoaders 的新手。我有一个集合seen_ids,我在其中添加了所有product_ids我抓取的内容,以便我可以检查是否有任何重复并尽早跳过它。

问题是,我想在__init__. 如果它是重复的,我不希望返回任何引用,并且我不能明确地从__init__. 我该怎么做?

但是它在 None 上给出错误,如果我不返回任何东西,它会返回对象的引用并且进一步的检查失败。

0 投票
2 回答
2111 浏览

python - Scrapy使用项目并将数据保存在json文件中

我想使用scrapy项目并操作数据并将所有内容保存在json文件中(使用像db这样的json文件)。

Spider 类在 的主页中搜索产品start_url,然后解析产品页面以捕获尺寸。最后它会搜索是否有更新self.storage.update(product.__dict__),如果是真的发送通知。

如何在我的代码中实现 Item?我以为我可以将它插入到产品类中,但我不能包含发送方法......

0 投票
1 回答
94 浏览

python-3.x - ModuleNotFoundError 使用 items.py

试图实现一个项目加载器。

我在 items.py 中的班级名称:

我的蜘蛛里面的导入语句:

我收到以下错误:

我的路径图如下: 在此处输入图像描述

0 投票
1 回答
111 浏览

python - 在 Scrapy 中导入项目时的相对错误

我正在学习 Python 以及如何使用 Scrapy。我一直在抓取“ http://quotes.toscrape.com/ ”并且一切正常,直到我尝试使用项目来组织数据。似乎错误是

我一直无法找到导入项目的正确方法,因此非常感谢您的帮助!

这是我的蜘蛛的代码:

items.py的代码:

这里的结构:

在此处输入图像描述

0 投票
1 回答
306 浏览

python - python scrapy从多个解析函数构建相同的项目:在循环中调用第二个解析函数

我正在尝试从许多解析函数构建一个项目,因为我从多个 url 获取数据,我尝试迭代一个字典(我使用 2 个 for 循环构建),这就是为什么使用 2 个 for 循环来获取生成 URL 所需的变量然后对于每个变量,我调用第二个解析函数传递所需的 URL,这是我想从我的主解析中调用第二个解析函数的地方

我正在使用这些 prints() 在输出中查看我的代码在我的第二个解析函数中是如何执行的,如下所示

(我知道我没有解释代码中的每一个细节,但我认为它不需要看到我的问题,而不是在你看到从这些打印中得到什么之后)

结果我得到

预期结果

也出于某种原因,每次我运行 spyder 时,我都会得到不同的随机打印顺序,这很令人困惑,我认为这是关于yield我希望有人能帮助我的问题

0 投票
2 回答
254 浏览

python-3.x - scrapy RuntimeError: 要使用 XPath 或 CSS 选择器,ItemLoader 需要用选择器实例化

我有一个ProductItemlLoader只是一个简单ItemlLoader的加载到一个简单ProductItemoffer_type字段

我运行这段代码:

并收到: RuntimeError: To use XPath or CSS selectors, ItemLoader be instantiated with a selector

我究竟做错了什么??

0 投票
0 回答
49 浏览

python-3.x - Scrapy:从页面内容派生的字段名称

我正在查看按以下方式构造的页面,尽管确切的元素可能不是table. 一般来说,每页key-value pairskeys数量最多限制为 3 个(但不一定按特定顺序),并且keys因页面而异(否则我无法知道所有这些keys可能是什么没有预先抓取所有可能的页面)。此外,同一页面中不应有重复的键(例如,A -> 1、B -> 2、A -> 3)。我没有使用 XPath 从页面中分离键和值的问题,只是在从我的 Spider 中存储和导出值时。

在此处输入图像描述

方法一

如果我使用dictionary类似这样的伪代码的方法:

然后结果将仅显示 A、B、C 的值,因为这些值存在于处理的第一页中,并且仅维护第一个请求的标头和值

方法二

如果我将scrapy.item.Item()andscrapy.item.Field()方法用于这样的事情:

然后我无法为未知值声明一个值(显示为...)。并且在尝试设置值时(直接或使用 ItemLoader.add_value())我会收到 KeyError。

我正在使用Python 3.8Scrapy 2.4.1

0 投票
0 回答
21 浏览

web-scraping - 项目文件的 Scrapy 问题

嗨,我正在学习 Scrapy,现在我正在尝试使用文件 items.py

  1. 首先这是我的结构

在此处输入图像描述

在“items.py”中,我有一个名为“SaraItem”的类,我在其中保存信息。 在此处输入图像描述

按照教程的建议,”它说“我应该使用from .. items import CLASSNAME(created in items.py) 但是,我收到错误 no “No module named ' main .items'; ' main ' is not a package”

我一直在寻找一些教程,他们建议

  1. 从 SARA_WEBSITE.website_craw.items 导入 SaraItem - 未命名模块
  2. 从 website_craw.items 导入 SaraItem - 没有命名模块
  3. 将 item.py 移动到同一个文件夹(到 spiders 文件夹)
  4. 使用 from sys import path 然后添加目录 - 但它不起作用 -
  5. 更改我的 Spider_module,NewSpider_module(实际上现在是 'sara.spiders')
  6. from future import absolute_import - ValueError 相对导入超出顶级包

我非常感谢您的所有反馈和建议