问题标签 [scrapy-shell]

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

python - Scrapy FormRequest ,尝试发送带有货币更改表单数据的发布请求(FormRequest)

我一直在尝试抓取以下网站 ,但将左上角设置表单中的货币更改为“SAR”,我尝试发送这样的抓取请求:

我仍然得到 EG 的价格

我还尝试发送带有指定表单数据的发布请求,如下所示:

仍然它永远不会工作,也尝试使用 FormRequest.from_response() 但它永远不会工作,我真的很喜欢一些建议,我是新来的scrapy表单请求,如果有人可以提供帮助,我将不胜感激

0 投票
1 回答
172 浏览

python - scrapy1.1 爬取了 0 个页面,但我可以使用 scrapy shell 命令获取数据

我一直在尝试学习 Scrapy 教程,在项目顶层运行命令后,我得到以下输出:

dmoz.py 是...

items.py 是...

但是,在 shell 中调试项目时,我可以获得 url。

这是我的平台。

0 投票
2 回答
2108 浏览

javascript - scrapy 没有检测到 html 元素,但它在源页面上可见

我有一个请求在常规浏览器上正常工作,但在 scrapy shell 中却没有。一旦我使用“scrapy shell”或“scrapy crawl”,整个 HTML 块就会消失。我肯定不会被禁止。

下面是 github 上的问题(带图片),在我被重定向到下面的链接(法国网站财产拍卖)之前,使用像 mozilla 这样的常规浏览器:

https://github.com/scrapy/scrapy/issues/2109

简而言之,我尝试抓取一个拍卖网站。使用普通浏览器,所有数据都可以正常显示。但是,当我使用 scrapy shell 检查时,response.body 中缺少一个完整的 HTML 块

即使我通过键入以下内容更改我的用户代理:

我试图更改用户代理,因为我被告知这是一个潜在的标头问题或 javascript 问题。

加上我终端上的这个消息错误说:

[1:1:0710/114628:ERROR:PlatformKeyboardEvent.cpp(117)] 未实现静态 PlatformEvent::Modifiers blink::PlatformKeyboardEvent::getCurrentModifierState()

以防万一,我必须添加DOWNLOAD_HANDLERS: {'s3': None} 我的设置以消除错误消息。

我在 ubuntu 14 上运行,并在其上安装了带有 scrapy 1.03 的 anaconda。

我在哪里错过了请人们注意的地方?


编辑:为了检查标头解决方案,我将运行良好的 mozilla 浏览器中的相同标头复制粘贴到我的 scrapy shell 中。这是我的代码:

HTML 数据仍然丢失。

javascript可能会阻止scrapy工作吗?


编辑:

我还安装了带有 docker 先决条件的 scrapy-splash。

然后,我尝试使用启动服务器来处理这个问题。

还是一样的问题!这是我的代码:

总而言之,这就是我所做的:

  • 我将标题更改为与我的 Mozilla 浏览器相同(有效)
  • 我安装了 Splash 并试图用它来处理 javascript
0 投票
1 回答
262 浏览

scrapy - Scrapy:从 HTML 而非 URL 中抓取项目

我遇到了需要爬行和刮擦的 Scrapy。但根据应用要求,我决定不采用 Monolithic 方法。一切都应该以服务为基础。所以我决定设计两个服务。

  1. 获取所有 url 和 html。上传到s3。
  2. 从 html 中抓取项目

为什么?很简单,今天我决定把它刮掉10个,明天我要刮20个(申请要求)。在这种情况下,我不想再次抓取 url 和 html,因为 html 将是相同的(我只抓取博客站点,其中只添加评论并且每个 url 的内容保持不变)。

第一项服务将基于 Scrapy。如果我们可以提供 html 而不是 start url,或者我们必须使用 BeatifulSoap 或其他一些抓取库,我正在寻找是否可以使用相同的抓取。

0 投票
1 回答
1882 浏览

python - Scrapy - 外壳中的 301 重定向

我找不到以下问题的解决方案。我正在使用 Scrapy(最新版本)并尝试调试蜘蛛。使用scrapy shell https://jigsaw.w3.org/HTTP/300/301.html-> 它不遵循重定向(它使用默认蜘蛛来获取数据)。如果我正在运行我的蜘蛛,它会遵循 301 - 但我无法调试。

怎样才能让 shell 跟随 301 允许调试最后一页呢?

0 投票
0 回答
484 浏览

python - 亚马逊的scrapy 301重定向

我正在尝试跟随 scrapy 教程,但使用 amazon 作为示例,而不是在他们的在线教程中使用 dmoz。

当我运行以下命令时,我注意到我收到了 301 重定向。

谁能解释为什么我使用scrapy为这个亚马逊页面获得301重定向?

0 投票
1 回答
619 浏览

xpath - Scrapy 无法识别 Firebug 列出的“tbody”和“ul”元素

我正在尝试提取此邮件列表的每个标题,同时记录每个线程有多少回复。

根据 Firebug,<ul>包含所有标题的 Xpath 是:

/html/body/table[2]/tbody/tr 1 /td[2]/table/tbody/tr/td/ul

但是,如果我将其直接粘贴到 Scrapy Shell 中,它将产生一个空列表:

经过一些试验和错误(因为我无法从文档中找出任何方法来列出给定选择器中的直接子元素(如果您知道,请告诉他们),我发现元素“tbody”在 Xpath 上不起作用。通过删除它们,我能够导航到/td

但是,如果我现在尝试达到“ul”,它将不起作用:

现在,最让我困惑的是运行:

会给我 ul,但与网站上出现的顺序不同。它以不同的顺序跳过线程。此外,似乎无法计算每个线程的回复量。

我在这里想念什么?自从我使用 Scrapy 已经有一段时间了,但我不记得有这么难弄清楚,而且无论出于何种原因,我的 Bing 或 Google 上的教程都没有。

0 投票
1 回答
403 浏览

python - 如何使用scrapy获取匹配的行号

使用以下示例:

哪里selectors-sample1-html是:

是否可以使用 Scrapy 1.1.2 获取匹配的行号?例如,类似:

谢谢!

0 投票
2 回答
9805 浏览

python - 启动scrapy shell时如何禁用robots.txt?

我在几个网站上使用 Scrapy shell 都没有问题,但是当机器人(robots.txt)不允许访问某个站点时我发现问题。如何通过 Scrapy 禁用机器人检测(忽略存在)?先感谢您。 我说的不是 Scrapy 创建的项目,而是 Scrapy shell 命令:scrapy shell 'www.example.com'

0 投票
1 回答
318 浏览

python-2.7 - 如何使用scrapy shell从网站上抓取产品名称

请帮我从这个链接中抓取产品名称: http ://www.gap.com/browse/category.do?cid=5168&scrollTo=product353401012&scrollTo=product353401012#pageId=0&department=75

产品名称包含在 div 中的 class="product-card--name" 中。当我运行 :response.css('div.product-card--name::text').extract() 时,它返回一个空列表。

请同时提供 css 和 xpath 命令。