问题标签 [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.

0 投票
0 回答
113 浏览

django - 从 Scrapy spider 内部读取现有的 Django 模型

我正在做一个项目,其中 url 被放入一个名为 .django 的 Django 模型UrlItems中。包含的 models.py 文件UrlItems位于home应用程序中。scrapy startproject scraper我在与 models.py 文件相同的目录中键入。请查看此图片以更好地了解我的 Django 项目结构。

我了解如何从我的爬虫中创建 UrlItems的,但是如果我的目标是获取并迭代我的 Django 项目在我的蜘蛛函数中存在的内容呢? UrlItemsdef 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 对象的列表。

0 投票
1 回答
440 浏览

python-2.7 - 下面的POST方法在scrapy中不起作用

我也尝试过使用标题、cookie、Formdata 和正文,但我得到了 401 和 500 状态码。在此站点中,第一页采用 GET 方法并提供 HTML 响应,其他页面采用 POST 方法并提供 JSON 响应。但是这些状态代码是未经授权的,但我已经搜索过,但在网页标题中找不到任何 CSRF 令牌或身份验证令牌。

0 投票
1 回答
1378 浏览

python - Scrapy:如何清理响应?

这是我的代码片段。我正在尝试使用 Scrapy 抓取网站,然后将数据存储在 Elasticsearch 中以进行索引。

现在我的问题是保存在“描述”字段中的值。

有很多空格、换行符和“u”字母....

如何进一步处理此代码以仅包含普通文本,没有额外的空格、换行符 (\n) 代码和“u”字母?

我读到BeautifulSoup与 Scrapy 配合得很好,但我找不到任何关于如何将 Scrapy 与 BeautifulSoup 集成的示例。我也愿意使用任何其他方法。非常感谢任何帮助。

谢谢

0 投票
1 回答
837 浏览

python - Django 与 Scrapy 的关系如何保存项目?

我只需要了解如何检测scrapy是否保存和蜘蛛中的项目?我正在从一个站点获取项目,然后我正在获取对该项目的评论。所以首先我必须保存项目,然后我会保存评论。但是当我在 yield 之后编写代码时,它给了我这个错误。

save() prohibited to prevent data loss due to unsaved related object ''.

这是我的代码

这是我的管道。

0 投票
1 回答
618 浏览

python - Scrapy 从管道中获取返回值

我正在尝试从管道中获取返回值。我正在使用产量生成器来生成项目。

这是我的代码。

这也是我的蜘蛛。

并且产品类型返回 nonetype

0 投票
0 回答
108 浏览

python - Scrapy - 如果找到关键字匹配,则将数据通过管道传输到数据库

简而言之,我在 Scrapy 中抓取网络数据。

我需要分析关键字/正则表达式的抓取数据,如果匹配,则将数据传输到数据库。如果没有找到,放弃。

我的问题是:我应该/可以在 Scrapy 中执行此操作吗?如果可以,您是否有任何高级建议让我进一步研究。

或者我应该简单地在 Scrapy 之外执行此任务。

理想情况下,我想在 Scrapy 中完成这一切。

ps 我是 Scrapy / Python 和 Stackoverflow 的新手,并且已经尽可能地对此进行了研究,但没有找到明确的答案/指导。

0 投票
2 回答
893 浏览

python - 使用scrapy从值列表中爬取网站

我有一个 NPI 列表,我想从 npidb.org 抓取提供者的名称 NPI 值存储在 csv 文件中。

我可以通过在代码中粘贴 URL 来手动完成。但是,如果我有一个 NPI 列表,每个我想要提供者名称,我就无法弄清楚该怎么做。

这是我当前的代码:

0 投票
2 回答
821 浏览

python - 在scrapy中从ImagesPipeline(或MediaPipeline)中检索http返回码

我有一个工作蜘蛛抓取图像 URL 并将它们放在 scrapy.Item 的 image_urls 字段中。我有一个继承自 ImagesPipeline 的自定义管道。当特定 URL 返回非 200 http 响应代码时(例如 401 错误)。例如,在日志文件中,我发现

但是,我无法在函数的自定义图像管道中捕获错误代码404307item_completed()等:

在files.pymedia_downloaded()的函数内部挖掘 scrapy 源代码,我发现对于非 200 响应代码,会记录一个警告(解释上述 WARNING 行),然后引发 a。FileException

我还如何访问此响应代码,以便我可以在 item_completed() 函数的管道中处理它?

0 投票
0 回答
334 浏览

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 就会失败。有没有人遇到过同样类型的问题?

0 投票
1 回答
3927 浏览

python - 在 Scrapy 项目中使用 Django 的模型(在管道中)

以前有人问过这个问题,但总是出现的答案是使用DjangoItem。但是它在它的github上声明:

对于编写密集型应用程序(例如网络爬虫)通常不是一个好的选择......可能无法很好地扩展

这是我的问题的症结所在,我想以与运行python manage.py shellfrom myapp.models import Model1相同的方式使用我的 django 模型并与之交互。使用这里看到的查询。

我尝试过相对导入并将整个scrapy项目移动到我的django应用程序中,但都无济于事。

我应该把我的scrapy项目移到哪里才能让它工作?如何重新创建/使用scrapy管道内shell中可用的所有方法?

提前致谢。