问题标签 [scrapy-pipeline]
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.
django - 从 Scrapy spider 内部读取现有的 Django 模型
我正在做一个项目,其中 url 被放入一个名为 .django 的 Django 模型UrlItems
中。包含的 models.py 文件UrlItems
位于home
应用程序中。scrapy startproject scraper
我在与 models.py 文件相同的目录中键入。请查看此图片以更好地了解我的 Django 项目结构。
我了解如何从我的爬虫中创建新 UrlItems
的,但是如果我的目标是获取并迭代我的 Django 项目在我的蜘蛛函数中存在的内容呢? UrlItems
def start_requests(self)
我试过的:
1)我按照this question中的标记解决方案尝试查看我创建的是否DjangoItem
已经UrlItem
加载了s。我尝试UrlItemDjangoItem.objects.all()
在我的蜘蛛start_requests
函数中使用并意识到我无法以UrlItem
这种方式检索我的 Django 项目。
2)在我的蜘蛛中,我尝试UrlItem
像这样导入我的 s from ...models import UrlItem
,但我收到了这个错误ValueError: attempted relative import beyond top-level package
。
更新
经过一番考虑,我最终可能会让 Scrapy 蜘蛛查询我的 Django 应用程序的 API 以接收 JSON 中现有 Django 对象的列表。
python-2.7 - 下面的POST方法在scrapy中不起作用
我也尝试过使用标题、cookie、Formdata 和正文,但我得到了 401 和 500 状态码。在此站点中,第一页采用 GET 方法并提供 HTML 响应,其他页面采用 POST 方法并提供 JSON 响应。但是这些状态代码是未经授权的,但我已经搜索过,但在网页标题中找不到任何 CSRF 令牌或身份验证令牌。
python - Scrapy:如何清理响应?
这是我的代码片段。我正在尝试使用 Scrapy 抓取网站,然后将数据存储在 Elasticsearch 中以进行索引。
现在我的问题是保存在“描述”字段中的值。
有很多空格、换行符和“u”字母....
如何进一步处理此代码以仅包含普通文本,没有额外的空格、换行符 (\n) 代码和“u”字母?
我读到BeautifulSoup与 Scrapy 配合得很好,但我找不到任何关于如何将 Scrapy 与 BeautifulSoup 集成的示例。我也愿意使用任何其他方法。非常感谢任何帮助。
谢谢
python - Django 与 Scrapy 的关系如何保存项目?
我只需要了解如何检测scrapy是否保存和蜘蛛中的项目?我正在从一个站点获取项目,然后我正在获取对该项目的评论。所以首先我必须保存项目,然后我会保存评论。但是当我在 yield 之后编写代码时,它给了我这个错误。
save() prohibited to prevent data loss due to unsaved related object ''.
这是我的代码
这是我的管道。
python - Scrapy 从管道中获取返回值
我正在尝试从管道中获取返回值。我正在使用产量生成器来生成项目。
这是我的代码。
这也是我的蜘蛛。
并且产品类型返回 nonetype
python - Scrapy - 如果找到关键字匹配,则将数据通过管道传输到数据库
简而言之,我在 Scrapy 中抓取网络数据。
我需要分析关键字/正则表达式的抓取数据,如果匹配,则将数据传输到数据库。如果没有找到,放弃。
我的问题是:我应该/可以在 Scrapy 中执行此操作吗?如果可以,您是否有任何高级建议让我进一步研究。
或者我应该简单地在 Scrapy 之外执行此任务。
理想情况下,我想在 Scrapy 中完成这一切。
ps 我是 Scrapy / Python 和 Stackoverflow 的新手,并且已经尽可能地对此进行了研究,但没有找到明确的答案/指导。
python - 使用scrapy从值列表中爬取网站
我有一个 NPI 列表,我想从 npidb.org 抓取提供者的名称 NPI 值存储在 csv 文件中。
我可以通过在代码中粘贴 URL 来手动完成。但是,如果我有一个 NPI 列表,每个我想要提供者名称,我就无法弄清楚该怎么做。
这是我当前的代码:
python - 在scrapy中从ImagesPipeline(或MediaPipeline)中检索http返回码
我有一个工作蜘蛛抓取图像 URL 并将它们放在 scrapy.Item 的 image_urls 字段中。我有一个继承自 ImagesPipeline 的自定义管道。当特定 URL 返回非 200 http 响应代码时(例如 401 错误)。例如,在日志文件中,我发现
但是,我无法在函数的自定义图像管道中捕获错误代码404、307item_completed()
等:
在files.pymedia_downloaded()
的函数内部挖掘 scrapy 源代码,我发现对于非 200 响应代码,会记录一个警告(解释上述 WARNING 行),然后引发 a。FileException
我还如何访问此响应代码,以便我可以在 item_completed() 函数的管道中处理它?
scrapy - 如何使用scrapy从动态生成的散列网址下载图像?
我正在使用 scrapy 从网站https://pixabay.com/下载图像。我的工作代码如下 -
使用此代码,我可以完美地下载图像https://cdn.pixabay.com/photo/2017/01/18/01/07/goose-1988657_960_720.png 。但是,如果我修改我的代码以下载更大尺寸的相同图像,我的代码将无法正常工作-
在我的最后一个代码中,图片网址是 -
https://pixabay.com/en/photos/download/goose-bird-isolated-feather-1988657.png
但是服务器将该网址转换为一些已处理的 网址 - https://pixabay.com/get/e83cb9072ef1063ecd1f4107ee4d4697e16ae3d111b4134392f3c27e/goose-1988657.png
由于 hased url,我的 scrpy 代码无法正常工作。错误-
这不是很具体的问题。每次如果服务器为任何图像生成动态 URL,scrapy 就会失败。有没有人遇到过同样类型的问题?
python - 在 Scrapy 项目中使用 Django 的模型(在管道中)
以前有人问过这个问题,但总是出现的答案是使用DjangoItem。但是它在它的github上声明:
对于编写密集型应用程序(例如网络爬虫)通常不是一个好的选择......可能无法很好地扩展
这是我的问题的症结所在,我想以与运行python manage.py shell和from myapp.models import Model1相同的方式使用我的 django 模型并与之交互。使用这里看到的查询。
我尝试过相对导入并将整个scrapy项目移动到我的django应用程序中,但都无济于事。
我应该把我的scrapy项目移到哪里才能让它工作?如何重新创建/使用scrapy管道内shell中可用的所有方法?
提前致谢。