问题标签 [scrapy-spider]

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 回答
1417 浏览

python - 将额外的值与 url 一起传递给 scrapy spider

我有一个 (id,url) 形式的元组列表,我需要从 url 列表中抓取产品,当这些产品被抓取时,我需要将它们存储在数据库中的 ID 下。

问题是我不明白如何将 id 传递给解析函数,以便我可以将抓取的项目存储在他们的 id 下。

0 投票
1 回答
3901 浏览

python - Scrapy:错误:错误处理

我已经写了(实际上我已经从教程中修改了一个刮板)示例刮板:

我得到了一个处理错误,这里是日志:

scrapy crawl dmoz -o items.json -t json

我试图找出发生了什么,但不幸的是我找不到它没有将项目导出到 json 文件的任何原因。在早期的项目中,scrapy 将多行数据导出到 json,没有任何问题。

0 投票
1 回答
560 浏览

scrapy - 抓取有限数量的页面

我正在为一个论坛写一个蜘蛛。我想要的是递归地抓取一个部分的一些页面。所以我制定了以下规则:

是否可以设置页面限制,以便蜘蛛可以抓取有限数量的页面?例如从第 1 页爬到第 8 页。

0 投票
2 回答
1015 浏览

python - 需要 JavaScript 交互的抓取页面

我正在尝试用 Scrapy抓取https://a836-propertyportal.nyc.gov/Default.aspx 。我在使用 FormRequest 时遇到了困难——具体来说,我不知道如何告诉 Scrapy 如何填写块和批表单,然后获取页面的响应。我尝试按照此处找到的 Scrapy 网站上的 FormRequest 示例(http://doc.scrapy.org/en/latest/topics/request-response.html#using-formrequest-from-response-to-simulate-a-user -login),但仍然难以正确单击“搜索”按钮。

如果您能提供任何建议以便我可以从提交的页面中提取数据,我将不胜感激。SO上的一些海报建议Scrapy不能很好地处理JS事件,而是使用像CasperJS这样的另一个库。

更新:如果有人可以请我指向允许我提交表单并检索后续信息的 Java/Python/JS 库,我将不胜感激

更新代码(根据 Pawel 的评论):我的代码可以在这里找到:

0 投票
3 回答
3316 浏览

python - 在scrapy的蜘蛛的start_urls列表中给出的每个url的单独输出文件

我想为我在蜘蛛的 start_urls 中设置的每个 url 创建单独的输出文件,或者想以某种方式拆分输出文件 start url 明智。

以下是我的蜘蛛的 start_urls

我想创建单独的输出文件,如

Arts.xml
Business.xml
Computers.xml

我不知道该怎么做。我正在考虑通过在项目管道类的 spider_opened 方法中实现一些类似的东西来实现这一点,

我试图在 start_urls 列表中找到每个抓取项目的引用 url。如果在 start_urls 中找到引用 URL,则将使用该引用 URL 创建文件名。但问题是如何在 spider_opened() 方法中访问响应对象。如果我可以在那里访问它,我可以基于它创建文件。

有什么帮助可以找到执行此操作的方法吗?提前致谢!

0 投票
2 回答
538 浏览

python - 用scrapy刮

我正在尝试用 scrapy 进行更深入的挖掘,但只能获得我正在抓取的内容的标题,而不是任何细节。这是我到目前为止的代码:

我无法获得显示任何结果的价格和数量。每张卡都有几个供应商,每个供应商都有自己的价格和数量。我认为这就是我遇到问题的地方。任何帮助将不胜感激。

0 投票
1 回答
3771 浏览

python - 用scrapy抓取多个页面

我正在尝试使用scrapy来抓取一个包含多页信息的网站。

我的代码是:

我试图刮掉所有的页面,直到它到达页面的末尾……有时页面会比其他页面多,所以很难确切地说页码在哪里结束。

0 投票
1 回答
1020 浏览

python - python Scrapy CrawlSpider:登录后规则不适用,只爬取第一页

我是一名 C/C++ 程序员,在制作绘图和文本处理方面具有有限的 python 经验。我目前正在从事个人数据分析项目,我正在使用 Scrapy 抓取论坛中的所有线程和用户信息。

我已经整理了一个初始代码,旨在首先登录,然后从子论坛的索引页面开始,执行以下操作:

1)提取所有包含“主题”的主题链接

2)暂时将页面保存在一个文件中(一旦整个过程开始,将提取项目信息)

3)找到标签class=next的下一页链接,转到下一页并重复1)和2)

我知道对于每个线程,我仍然需要浏览所有包含所有回复帖子的页面,但我计划在我当前的代码工作正确后执行此操作。

但是,我当前的代码只会提取起始 url 中的所有线程,然后停止。我已经搜索了几个小时,但没有找到任何解决方案。所以我在这里问我的问题,希望有 Scrapy 经验的人可以在这里帮助我。如果你们想要任何其他信息,例如输出,请告诉我。谢谢!

关于保罗的回复,我更新了我的代码,我的链接提取器有问题,我需要修复它。除此之外,该规则现在可以正常工作。再次感谢保罗的帮助。

这是我当前的蜘蛛代码:

0 投票
1 回答
45 浏览

python - 如何使用加载的数据在 ItemLoader 中添加新值?

我已经开始了一个抓取项目,我有一个小问题ItemLoader

假设我ItemLoader在刮刀中有一些:

我想根据sku我提供的向项目加载器添加一个 URL:

...但是,根据文档,我没有看到一个明确的方法来做到这一点。

我考虑过的选项:

  • 输入处理器:添加一个字符串,并sku以某种方式将其作为上下文传递
  • 单独处理:不使用项目加载器创建 URL

如何使用加载的数据在 中添加新值ItemLoader

0 投票
1 回答
50 浏览

api - 用于抓取网站的 API?

只是想知道,谷歌或任何其他公司是否提供允许您接收爬网链接的 API?我想过滤带有 .txt 扩展名的链接,并且可能只过滤另一个附加扩展名。

如果不是,我将如何去爬取/索引页面但仅将其改进为我选择的扩展?我也不想打官司,所以我必须遵守 robots.txt 吗?而且我是否需要一个大型数据库来抓取这些文件的内容?我想以 DMOZ 为起点抓取随机链接(使用我选择的扩展名)。