问题标签 [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.
python - 用于 Scrapy 中的项目的 has_key
我想检查是否在 Scrapy 项目中设置了字段。但我has_key
在该项目上使用,我收到此错误:
如何在不使用 has_key 的情况下检查字段是否设置?
python-3.x - 如何从scrapy python下载图像并将它们保存到文件夹及其变量中的路径
我想下载一个图像和 url 看起来像这样"/get.aspx?id=1988147"
,并将下载的图像保存到一个文件中,保存路径在项目中,如item['image']
.
python - 如何不从 __init__ 返回对象引用
我是 ItemLoaders 的新手。我有一个集合seen_ids
,我在其中添加了所有product_ids
我抓取的内容,以便我可以检查是否有任何重复并尽早跳过它。
问题是,我想在__init__
. 如果它是重复的,我不希望返回任何引用,并且我不能明确地从__init__
. 我该怎么做?
但是它在 None 上给出错误,如果我不返回任何东西,它会返回对象的引用并且进一步的检查失败。
python - Scrapy使用项目并将数据保存在json文件中
我想使用scrapy项目并操作数据并将所有内容保存在json文件中(使用像db这样的json文件)。
Spider 类在 的主页中搜索产品start_url
,然后解析产品页面以捕获尺寸。最后它会搜索是否有更新self.storage.update(product.__dict__)
,如果是真的发送通知。
如何在我的代码中实现 Item?我以为我可以将它插入到产品类中,但我不能包含发送方法......
python - 在 Scrapy 中导入项目时的相对错误
我正在学习 Python 以及如何使用 Scrapy。我一直在抓取“ http://quotes.toscrape.com/ ”并且一切正常,直到我尝试使用项目来组织数据。似乎错误是
我一直无法找到导入项目的正确方法,因此非常感谢您的帮助!
这是我的蜘蛛的代码:
items.py的代码:
这里的结构:
python - python scrapy从多个解析函数构建相同的项目:在循环中调用第二个解析函数
我正在尝试从许多解析函数构建一个项目,因为我从多个 url 获取数据,我尝试迭代一个字典(我使用 2 个 for 循环构建),这就是为什么使用 2 个 for 循环来获取生成 URL 所需的变量然后对于每个变量,我调用第二个解析函数传递所需的 URL,这是我想从我的主解析中调用第二个解析函数的地方
我正在使用这些 prints() 在输出中查看我的代码在我的第二个解析函数中是如何执行的,如下所示
(我知道我没有解释代码中的每一个细节,但我认为它不需要看到我的问题,而不是在你看到从这些打印中得到什么之后)
也出于某种原因,每次我运行 spyder 时,我都会得到不同的随机打印顺序,这很令人困惑,我认为这是关于yield
我希望有人能帮助我的问题
python-3.x - scrapy RuntimeError: 要使用 XPath 或 CSS 选择器,ItemLoader 需要用选择器实例化
我有一个ProductItemlLoader
只是一个简单ItemlLoader
的加载到一个简单ProductItem
的offer_type
字段
我运行这段代码:
并收到:
RuntimeError: To use XPath or CSS selectors, ItemLoader be instantiated with a selector
我究竟做错了什么??
python-3.x - Scrapy:从页面内容派生的字段名称
我正在查看按以下方式构造的页面,尽管确切的元素可能不是table
. 一般来说,每页key-value pairs
的keys
数量最多限制为 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.8
和Scrapy 2.4.1
。
web-scraping - 项目文件的 Scrapy 问题
嗨,我正在学习 Scrapy,现在我正在尝试使用文件 items.py
- 首先这是我的结构
在“items.py”中,我有一个名为“SaraItem”的类,我在其中保存信息。
按照教程的建议,”它说“我应该使用from .. items import CLASSNAME(created in items.py) 但是,我收到错误 no “No module named ' main .items'; ' main ' is not a package”
我一直在寻找一些教程,他们建议
- 从 SARA_WEBSITE.website_craw.items 导入 SaraItem - 未命名模块
- 从 website_craw.items 导入 SaraItem - 没有命名模块
- 将 item.py 移动到同一个文件夹(到 spiders 文件夹)
- 使用 from sys import path 然后添加目录 - 但它不起作用 -
- 更改我的 Spider_module,NewSpider_module(实际上现在是 'sara.spiders')
- from future import absolute_import - ValueError 相对导入超出顶级包
我非常感谢您的所有反馈和建议