问题标签 [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.
javascript - scrapy-splash 渲染多于第一页
我正在尝试抓取一个网站,但需要在所有页面中使用 splash,因为它们的内容是动态创建的。现在它只呈现第一页,而不是内容页面或分页页面。
这是代码:
我已经以我能想到的各种方式玩了它,但它没有用。我现在能想到的唯一解决方案是使用渲染 API 将链接发送到内容页面和分页,但我认为这是非常糟糕的编码,必须有另一种方式。
谢谢你的帮助。
scrapy - scrapy 和 splash 存在内容安全策略问题
我正在做的是
- 谷歌一些linkedin特定链接
- 登录linkedin.com(成功)
- 重新访问主页(此处失败)
- 从我在第一步中搜索的链接中提取一些所需的信息
我的 scrapy 机器人在第 3 步失败了。所以我的问题是,有没有办法绕过这个内容安全策略?如果是,请详细分享您的想法,谢谢。
谷歌指出我指出的相关问题之一是 CSP 标头 和Eval Issue,因为它没有提供有关代理设置的任何详细信息,所以没有帮助。
2017-12-29 10:59:47 [scrapy_splash.middleware] 警告:对 Splash 的错误请求:{u'info': {u'source': u'[string "..."]', u'message' : u'Lua error: [string "..."]:32: JavaScript error: EvalError: Refused to evaluate a string as JavaScript because \'unsafe-eval\' is not a allowed source of script in the following Content Security Policy指令:“script-src \'report-sample\' \'sha256-[redacted...]=\' \'unsafe-inline\' static.licdn.com sclnkd.licdn.com static-fstl.licdn.com static-src.linkedin.com https://www.linkedin.com/voyager/service-worker-push.js https://platform.linkedin.com/js/analytics.js static-exp1.licdn.com static- exp2.licdn.com scexp1.licdn.com scexp2.licdn.com 静态-lcdn.licdn。com sclcdn.licdn.com https://www.linkedin.com/sc/ https://www.linkedin.com/scds/ https://qprod.www.linkedin.com/sc/ https://www.linkedin.com/sw.js https://www.linkedin.com/voyager /abp-detection.js ".\n', u'type': u'LUA_ERROR', u'line_number': 32, u'error': u'JavaScript error: EvalError: Refused to evaluate a string as JavaScript because \ 'unsafe-eval\' 不是以下内容安全策略指令中允许的脚本来源:“script-src \'report-sample\' \'sha256-[redacted...]=\' \'unsafe-inline \' static.licdn.com sclnkd.licdn.com static-fstl.licdn.com static-src.linkedin.com https://www.linkedin.com/voyager/service-worker-push.js https://platform .linkedin.com/js/analytics.jsstatic-exp1.licdn.com static-exp2.licdn.com scexp1.licdn.com scexp2.licdn.com static-lcdn.licdn.com sclcdn.licdn.com https://www.linkedin.com/sc/ https: //www.linkedin.com/scds/ https://qprod.www.linkedin.com/sc/ https://www.linkedin.com/sw.js https://www.linkedin.com/voyager/abp -detection.js ".'}, u'type': u'ScriptError', u'description': u'执行Lua脚本时发生错误', u'error': 400} 2017-12-29 10:59: 47 [scrapy.core.engine] DEBUG:通过 http://localhost:8050/execute > (referer: None) 2017-12-29 10:59抓取 (400) https://www.linkedin.com/feed/ :47 [scrapy.spidermiddlewares.httperror] 信息:忽略响应 <400 https://www.linkedin.com/feed/>: HTTP 状态码未处理或不允许
python-3.x - 飞溅问题(d-bus、QSslSocket、libpng)
我正在尝试通过scrapinghub/splash
Docker 映像使用 Splash,并在第一个请求之后发出一些警报(这是到/robots.txt
端点,因为我正在使用库scrapy-splash
插件scrapy
(使用 Python 3.6)。
最可悲的是它没有渲染这个页面。还需要提到的是,有时它会呈现这个页面,并且它包含重定向以防 JS 可用。
如何让它发挥作用?
更新
仍然使用scrapinghub/splash:3.0
这些消息时,但渲染工作。那么我应该将其报告为scrapinghub/splash
图像中的错误还是这些错误可能是由我的环境引起的?
更新
出于某种原因,甚至3.0
从现在开始都不会渲染,以及master
(docker image tag)。因此,对于每个带有latest
ormaster
或3.0
标签的图像,在询问(索引端点上的表单)渲染http://floodlist.com/news
页面之后,它只显示一个带有You are being redirected...
标题的页面。
我发现了这个问题,所以d-bus
问题可能是无害的。
python - Trivago 检测到 Scrapy Splash
当我使用 Splash 抓取 Trivago 时,我得到了验证码。如果我使用 curl 或使用普通的 Scrapy 请求,它不会发生。
有没有办法使用 Splash 但不会被 Trivago 检测为机器人?
python - Splash UI 无法在 Windows 上启动
我已经使用 Docker Toolbox 和 Docker Quickstart Terminal 在 docker 上设置了 splash。它给出了这个输出:
然后我按照飞溅指南的说明进行操作:
Splash UI 提供了一种尝试脚本的简单方法:有一个用于 Lua 的代码编辑器和一个提交脚本以执行的按钮。访问http://127.0.0.1:8050/(或 Splash 正在监听的任何主机/端口)。
但是我打不开地址。从日志:
由于格式奇怪,我无法识别记录时间。有人可以告诉不打开启动界面的问题出在哪里吗?
python - Scrapy Splash单击按钮不起作用
我正在尝试做的事情
在avito.ru(俄罗斯房地产网站)上,用户的电话是隐藏的,直到您点击它。我想用 Scrapy+Splash 收集手机。
示例网址:https ://www.avito.ru/moskva/kvartiry/2-k_kvartira_84_m_412_et._992361048
单击按钮后,将显示弹出窗口并显示电话。
我正在使用带有以下 Lua 脚本的Splash执行API:
问题
未单击该按钮且未显示电话号码。这是一项微不足道的任务,我无法解释为什么它不起作用。
item-phone-button
如果我们替换为 ,单击对于同一页面上的另一个字段可以正常工作js-show-stat
。所以 Javascript通常可以工作,蓝色的“显示电话”按钮一定是特殊的。
我试过的
为了隔离问题,我创建了一个带有最小示例脚本的仓库和一个用于 Splash 的 docker-compose 文件: https ://github.com/alexanderlukanin13/splash-avito-phone
Javascript 代码是否有效,您可以在 Chrome 和 Firefox 中使用 Javascript 控制台进行验证
我已经用 Splash 版本 3.0、3.1、3.2 尝试过,结果是一样的。
更新
我也试过:
@Lore 的建议,包括
simulateClick()
方法(参见模拟点击分支)mouseDown/mouseUp 事件,如下所述:Simulating a mousedown, click, mouseup sequence in Tampermonkey? (见trigger_mouse_event分支)
scrapy-splash - 如何使用 Splash 处理新标签打开?
我正在抓取具有非常烦人的链接(<a>
HTML 标记)的网站 - 它会在单击时打开小弹出表单,并在提交后打开带有我需要的 URL 的新浏览器选项卡(并将焦点切换到它),并且将旧标签重定向到另一个页面。
成功提交弹出表单很容易,但我不知道如何获取这个新标签的 URL。
正如文档所说,Splash 只能使用一个选项卡,所以不可能做到这一点吗?