问题标签 [splash-js-render]

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 投票
2 回答
647 浏览

python - Scrapy-Splash 停止响应某些链接

大家好,我正在做一个抓取项目,我正在抓取一个有角度的网站。对于这个任务,我使用了 scrapy 和 splash。几天前,scraper 运行得非常好,但现在对于某些链接它无法正常工作。它打开用户的时间线,但无法为所有用户打开视频页面(在此之前工作正常)。我没有收到任何错误,但是当请求用户的视频页面时,飞溅变得无响应。我给出了足够的时间延迟,大约是 72000 秒。使用 Splash 3.4 的版本:最新的 docker image scrapy 1.7.3 python 3

编辑 大家好,今天我观察到更多关于我的启动挂起问题,我认为网站已经编写了一些 JavaScript 代码来检测它是来自正确浏览器还是来自启动的请求。因为当我在浏览器中打开链接(' https://www.example.com/@user/video/6767235575733947649 ')时,它工作正常,但是在使用默认标题的初始浏览器中打开时,它会将我重定向到' https://s16. examplecdn.com/example/falcon/_next/static/1.0.1.309/pages/_error.js '然后飞溅挂起并抛出 continue sly 2019-12-11 07:33:43.712428 [render] JsConsole( https:// /s16.examplecdn.com/example/falcon/_next/static/chunks/commons.787eed06a7e37b82e3d0.js:1): TypeError: undefined is not an object (evalating 'h.$languageList') 所以,我认为这可以帮助你们改进飞溅,希望你们能帮助我解决这个问题。

0 投票
0 回答
462 浏览

web-scraping - Scrapy-Splash 中的 Javascript 渲染问题

我正在探索 Scrapy+Splash 并遇到了SplashRequest不呈现 javascript 并且给出完全相同的响应的问题scrapy.Request。我要抓取的网页是这个。我想要网页中的一些字段用于我的课程项目。

即使在等待 .js 渲染后,我也无法获得最终的 HTML 'wait':'30'。事实上,结果是一样的scrapy.Request。相同的代码适用于我尝试过的另一个网站,即。这个。所以我相信设置很好。

这是蜘蛛定义

settings.py (仅相关部分)文件是

输出文件在这里

我不知道输出是什么,它已经嵌入了 JavaScript。在浏览器中打开它会告诉我们渲染的很少(仅标题)。我将如何获得网站的渲染 HTML?任何帮助深表感谢。

0 投票
0 回答
266 浏览

web-scraping - 从下拉列表中选择元素并等待页面呈现内容的完美 Lua_Script

我正在使用 scrapy 和 Splash 来抓取网站。我想要一个完美的 lua 脚本,首先单击下拉按钮,然后它必须从该站点(https://lenovocareers.com/#search )中选择特定的国家名称,例如(Morroco )并等待页面呈现仅该城市(摩洛哥)所需的内容(工作)。到目前为止我尝试过的我的 lua 脚本如下所示,但请注意它根本不起作用。

0 投票
1 回答
83 浏览

python - 关于 Scrapy 与 Splash 从元素由 javascript 创建的网页中提取数据的问题

最近在学习用 Scrapy 和 splash 抓取动态网站。

这是我的蜘蛛中的内容:

但是,splash 返回的响应仍然与我在浏览器中检查的响应不同。

splash 的设置是正确的,因为我已经在 localhost:8050 上进行了测试。这是我的内容setting.py

powershell 中的输出:

码头工人的输出:

我不知道代码有什么问题。通过 splash 获得的最终 html 代码中没有显示元素。您的建议将不胜感激。

0 投票
1 回答
481 浏览

python - Splash - Scrapy - HAR 数据

一般来说,我了解如何使用 Scrapy 和 x-path 来解析 html。但是,我不知道如何获取 HAR 数据。

脚本中将 HAR 数据导出到文件的下一条语句是什么?如何将所有网络数据生成到文件中?任何见解将不胜感激。

0 投票
0 回答
160 浏览

python - scrapy-splash 不返回页面的 javascript 版本

我通过docker使用scrapy-splash来访问这个页面:https ://finance.yahoo.com/quote/NFLX/options?p=NFLX

该脚本有效(有点!),但是,返回的页面已class="NoJs chrome featurephone"指定并且不包含我要提取的所有字段。

这些是我的设置:

这是我的脚本:

最初,我想从下拉菜单中提取选项到期日期,该选项在页面的非 JS 版本中不可用。

我尝试将USER_AGENTscrapy默认设置更改为上面设置中详述的设置。我还尝试使用 VPN 切换 IP 地址,以试图混淆请求来自 docker 实例。

我已经设法实现了我想要使用HTMLSession()的 目标,requests_html并想知道 Scrapy + Splash 是否可以实现同样的目标。

我觉得这可能是由于网站将请求识别为机器人。任何有关如何解决此问题的建议将不胜感激。

0 投票
1 回答
92 浏览

scrapy - 从 scrapy-splash python 项目中获取 .exe

我有一个scrapy-splash项目,我正在尝试.exe使用这个 setup.py 脚本获取一个文件:

现在 pyinstaller 提供.exe文件,但问题是我的启动程序在 docker 上运行,我不知道如何在最终用户计算机上安装它。谁能帮我这个?

0 投票
1 回答
118 浏览

python - 无法获得scrapy javascript完整响应

我似乎无法从此链接呈现完整的 html 响应:

http://gabgoh.github.io/COVID

我正在使用splash扩展,因为我尝试过的常见scrapy实践没有奏效,但这也不起作用。

这是我的python代码,(我正在运行splash docker docker run -p 8050:8050 scrapinghub/splash

这是我的终端输出:

我正在尝试获取整页。我会很感激任何帮助。这是我的第一篇文章顺便说一句。

0 投票
1 回答
487 浏览

python - 如何使用 Lua 处理表单填写飞溅

我正在尝试使用 splash 和 lua 作为脚本登录网页( http://quotes.toscrape.com/login )。但是,我无法登录该网站。

形式是

我的要求是根据输入类型以表单形式获取输入。假设在登录表单中,如果我们得到电子邮件或文本的输入类型,那么我们会将我们的用户名设置为它的值。同样,如果字段类型是密码,那么我们会将密码作为它的值。如果它包含一些像 csrf_tokem 这样的隐藏字段,那么我们将从表单中获取它的值,并将其与它一起传递。

我希望这些可能是一些简单的事情。但我无法在 lu 中实施,因为我没有这方面的经验。无论如何,提前感谢您帮助我解决这个问题。

0 投票
1 回答
445 浏览

python - scrapy-splash xpath 选择器在 shell 中工作,但不适用于蜘蛛

问题:
我正在使用 scrapy-splash 来抓取 youtube 视频页面。但是,除了元素之外,xpath 似乎没有返回任何keywords元素。(xpath都是直接从Chrome复制的)

我尝试过的事情:
起初我认为这是因为调用 parse 时页面尚未完全加载,所以我更改了 SplashRequest 的等待参数,但它没有帮助。我还从启动 GUI ( http://localhost:8050 )下载了 html 响应的副本,并验证 xpath/selectors 在下载的副本上都可以正常工作。在这里,我假设这个 html 正是 scrapy 在 parse 中看到的,所以我无法理解为什么它不能在 scrapy 脚本中工作。

我还尝试了scrapy shell,使用它,一切正常:
scrapy shell 'http://localhost:8050/render.html?url=https://www.youtube.com/watch?v=HOfTrhmIXIM&wait=2.0'

回复:

代码:
这是我的代码: