如何采集javascript动态加载网页

简介: 从一个运行 javascript 的网站加载所有数据来加载内容,目前的问题是当运行启动代码时它无法加载 javascript 内容,因为用户应该向下滚动才能加载。如何编写启动代码来滚动整页呈现 javacript 并返回 html呢?为了加载运行JavaScript来加载内容的网站上的所有数据,可以修改Splash代码以模拟滚动并确保整个页面呈现,从而能够检索所需的HTML内容

44.png

从一个运行 javascript 的网站加载所有数据来加载内容,目前的问题是当运行启动代码时它无法加载 javascript 内容,因为用户应该向下滚动才能加载。如何编写启动代码来滚动整页呈现 javacript 并返回 html呢?

为了加载运行JavaScript来加载内容的网站上的所有数据,可以修改Splash代码以模拟滚动并确保整个页面呈现,从而能够检索所需的HTML内容。以下是可以采用的示例方法:

functionmain(splash, args)
--亿牛云(动态转发隧道)爬虫代理加强版--设置代理IP和认证信息localproxy="www.16yun.cn"localproxy_port=12345localusername="16YUN"localpassword="16IP"--设置代理splash:set_proxy{
host=proxy,
port=proxy_port,
username=username,
password=password,
    }
assert(splash:go(args.url))  --导航到目标URLassert(splash:wait(args.wait))  --等待初始内容加载--设置滚动参数localscroll_delay=1--调整每次滚动之间的延迟localscroll_steps=10--调整滚动步数localscroll_height=splash:evaljs("document.body.scrollHeight")
--滚动到页面底部localscroll_to_bottom=splash:jsfunc([[
function() {
window.scrollTo(0, document.body.scrollHeight);
  }
]])
for_=1, scroll_stepsdoscroll_to_bottom()  --滚动到页面底部splash:wait(scroll_delay)  --等待页面滚动end--在滚动后等待最终内容加载assert(splash:wait(args.wait))
return {
html=splash:html()  --返回HTML内容}
end

在上述代码中,我们使用爬虫代理IP提高访问成功率,同时使用Splash脚本API导航到目标URL并等待初始内容加载。然后,我们定义滚动的参数,包括每次滚动之间的延迟、滚动步数和页面的初始滚动高度。

接下来,我们使用jsfunc创建一个JavaScript函数(scroll_to_bottom()),通过将垂直滚动位置设置为文档高度,将页面滚动到底部。我们在循环中使用此函数多次模拟滚动,每次滚动后等待页面滚动并加载新内容。

在最后一次滚动后,我们等待额外的内容加载,然后返回完全呈现页面的HTML内容。

请根据您所针对的具体网站调整scroll_delay和scroll_steps的值,以确保足够的滚动和内容加载。

相关文章
|
12月前
|
JavaScript 算法 开发者
如何用JS实现在网页上通过鼠标移动批量选择元素的效果?
本文介绍了类似电脑桌面通过鼠标选择多个图标的实现原理。主要通过监听mousedown、mousemove和mouseup事件,动态调整选择框大小并计算与元素的重叠情况。提供了角重叠和相交重叠的检测方法,并附有示例代码和在线演示链接,方便开发者参考与测试。
410 56
|
11月前
|
Web App开发 数据采集 JavaScript
动态网页爬取:Python如何获取JS加载的数据?
动态网页爬取:Python如何获取JS加载的数据?
1619 58
|
存储 JavaScript 前端开发
使用JavaScript构建动态交互式网页:从基础到实践
【10月更文挑战第12天】使用JavaScript构建动态交互式网页:从基础到实践
756 1
|
8月前
|
编解码 JavaScript 前端开发
如何在网页播放英文的m3u8文件(基于Javascript搭建的在线网页工具)
什么是m3u8?又该如何在网页中高效、便捷地播放英文的m3u8文件呢?今天这篇文章就带你一起了解,并推荐一种基于Javascript搭建的在线网页工具,让你轻松解决播放问题。
2541 0
|
11月前
|
数据采集 Web App开发 JavaScript
Python爬虫如何获取JavaScript动态渲染后的网页内容?
Python爬虫如何获取JavaScript动态渲染后的网页内容?
|
编解码 前端开发 JavaScript
javascript检测网页缩放演示代码
javascript检测网页缩放演示代码
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
数据采集 Web App开发 JavaScript
如何使用Selenium处理JavaScript动态加载的内容?
如何使用Selenium处理JavaScript动态加载的内容?
|
存储 JavaScript 前端开发
【JavaScript】网页交互的灵魂舞者
本文介绍了 JavaScript 的三种引入方式(行内、内部、外部)和基础语法,包括变量、数据类型、运算符、数组、函数和对象等内容。同时,文章还详细讲解了 jQuery 的基本语法和常用方法,如 `text()`、`html()`、`val()`、`attr()` 和 `css()` 等,以及如何插入和删除元素。通过示例代码和图解,帮助读者更好地理解和应用这些知识。
202 1
【JavaScript】网页交互的灵魂舞者

热门文章

最新文章

下一篇
开通oss服务