问题标签 [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 投票
0 回答
154 浏览

python - 使用 scrapy 获取部分数据抓取站点,而相同的 url 让我从 shell 获取完整结果

我正在尝试使用以下链接抓取 Groupon 交易:

当我从 shell 运行它时,scrapy shell我会在页面上看到所有交易。例如titles = response.css('figure.card-ui').css('div.cui-udc-title-with-subtitle ::text').getall()让我获得 37 个头衔。

壳牌运行让我:

当我从刮板运行它时,我只得到一小部分结果:

在这种情况下,我得到以下结果(使用 flags 运行-o items.csv -t csv),这是所有结果的一小部分:

关于如何从刮板代码中获得完整结果的任何想法?

0 投票
1 回答
164 浏览

python - 使用 urlparse 解析不同的页面

我正在尝试解析网站的多个页面,但我不明白如何更改 url 的查询(如果这有意义?)

我尝试创建一个 next_page ,它每次找到下一页元素时都会添加第一页并添加 +1,但我认为我不能,因为我将有多个起始 url(都相似)。当我尝试获取下一页元素的信息时,它返回:

["loadmoreresult('?networkId=24&pageNumber=2&pageSize=100&allnet=yes&networkIds=1&networkIds=2&networkIds=3&networkIds=4&networkIds=61&networkIds=98&networkIds=108&networkIds=6&networkIds=5&networkIds=22&networkIds=13&networkIds=18&networkIds=15&networkIds=16&networkIds=105&networkIds=38&licenseIds=0&licenseIds= 0&licenseIds=0&licenseIds=0&licenseIds=0&searchby=CountryCode&orderby=CountryCity&country=ES&city=&keyword=&lastCid=116490');返回false;"]

使用 url.parse(response.url).query 我得到:

'networkId=24&pageNumber=1&pageSize=100&allnet=yes&networkIds=1&networkIds=2&networkIds=3&networkIds=4&networkIds=61&networkIds=98&networkIds=108&networkIds=6&networkIds=5&networkIds=22&networkIds=13&networkIds=18&networkIds=15&networkIds=16&networkIds=105&networkIds=38&licenseIds=0&licenseIds=0&licenseIds=0&licenseIds=0&licenseIds =0&searchby=CountryCode&orderby=CountryCity&country=ES&city=&keyword='

我需要做的就是创建一个使用相同方案、路径的新链接,然后更改查询。

如果您需要更多信息,请告诉我,我真的不知道什么与您更相关,因为我还是一个初学者。

0 投票
1 回答
309 浏览

python - Web Scraping:运行蜘蛛时为空/NA/Null 条目,在 scrapy shell 中更正条目

Webscraping 一个色情网站,我正在制作一个蜘蛛,它在分页中爬行以获取最新视频,为每页 32 个视频中的每一个抓取元数据。

接下来是我的蜘蛛代码:

问题是几乎一半的条目最终都是空的,没有标题、视图、标签或类别。日志示例:

但同时,如果我在scrapy shell中获取相同的链接,并在蜘蛛中复制并粘贴相同的选择器路径,它会给我正确的值:

提前感谢您的帮助。

编辑:我认为这不是我的代码问题而是对服务器的限制以避免被刮掉,我是否正确?

0 投票
1 回答
42 浏览

scrapy - 尝试使用scrapy登录网站,响应显示登录页面

我是 Scrapy 的新手,我正在尝试登录工作,从 shell 开始。这是我要登录的网站:

https://www.acdd.com/customer/account/login/

首先我做了

from scrapy.http import FormRequest

然后我做了

token = response.xpath('//*[@name="form_key"]/@value').extract_first()获取令牌并且输出看起来正确。然后我做了

FormRequest.from_response(response,formdata={'form_key': token,'login[customerid]': '12345','login[username]': 'myaddress@email.com','login[password]': 'mysecret'})

它输出

<GET https://www.acdd.com/catalogsearch/result/?q=&login%5Bcustomerid%5D=12345&login%5Busername%5D=myaddress%40email.com&login%5Bpassword%5D=mysecret&form_key=abcdef12345>

如果我这样做view(response),它只会显示登录页面,而不是应该显示的用户页面。我一直在关注教程和示例,但我认为这个站点可能与我使用的简单示例有所不同。我使用 Firefox 登录并查看开发人员工具以查看它发布的表单数据,并且我拥有所有元素。看起来,当表单打开时https://www.acdd.com/customer/account/login/,它实际上发布到https://www.acdd.com/customer/account/login/Post. 我试图在 shell 中发布到该页面,但没有表单元素。这超出了我使用过的基本示例。任何帮助表示赞赏。

0 投票
1 回答
366 浏览

python - 无法抓取 https://angel.co/

我正在尝试使用抓取该网站的几页。

我已经尝试了关于这个网站的各种堆栈溢出答案,但没有一个奏效。网站上的所有页面仅返回 403。我尝试更改 ip 和更改用户代理

我怎样才能让我的蜘蛛成功抓取这个网站?我已经检查过这个网站运行良好,即使 javascript 被禁用但仍然无法抓取 :(

0 投票
1 回答
220 浏览

python - Scrapy - 从 javascript 脚本响应中检索身份验证令牌

我需要有关此特定情况的帮助。

设想

  1. 呼叫站点

http://www.example.com/index.php

我可以从<script>标签中获取此信息

https://www.example.com/anotherpage.php?key=ABCDFG

使用密钥,我必须调用此端点

https://www.example.com/login.php?key=ABCD

用于检索存储在 javascript 响应中的 SessionID

最后,使用这个 sessionId 并执行正确的 POST 操作,我可以在我需要的所有页面中导航。

我的僵局

我可以使用scrapy shellwith模拟所有步骤regEx(并且一切正常),但在开始数据提取之前,我不知道如何在 scrapy 蜘蛛中管理这些步骤。

有人可以帮我吗?

0 投票
1 回答
74 浏览

python - Scrapy - 在两个变量之间拆分选择器部分

我在使用我的蜘蛛脚本抓取数据时遇到问题,即使在我在 scrapy shell 中测试它时类似的代码也有效。唯一的区别是在我的脚本中我拆分了选择器。

这是在 shell 中工作的选择器:

这是脚本中的选择器:

我对为什么这不起作用的有根据的猜测是因为当我在 shell 中使用选择器时,我可以将括号放在“//”之前和“[1]”之前,这有助于选择器正常工作。但是在脚本中我不能这样做,因为我要拆分这两个组件。

关于如何解决这个问题的任何想法?

提前感谢您的帮助!

0 投票
1 回答
52 浏览

scrapy - Scrappy shell 没有返回整个页面

我有以下问题。

当我运行这个杂乱无章的外壳时: scrapy shell "http://en.50partners.fr/Startups/"

我希望检索整个页面,不幸的是,当我运行时,view(response)我正在检索没有启动部分本身的页面。你有什么想法,如何解决这个问题?

谢谢。

0 投票
1 回答
56 浏览

python - scrapy 视图是否使用活动项目设置?

是否scrapy view使用活动项目设置(尤其是中间件)?我想在scrapy view.

0 投票
0 回答
66 浏览

python - 如何使用 Scrapy 抓取需要以表格格式登录的网站?

我正在尝试爬入一个需要登录的网站,但表单中有一个表格,我在下面添加了其 html 内容,并添加了我的代码。

任何帮助,将不胜感激。谢谢

所以,上面是检查元素派生代码,它有一个表格,表格有一个表格,然后是表格元素。我希望登录并抓取数据,我已经编写了一些基本代码,如下所示。

我的代码如下: