[GPT] 网页中某些dom内容是通过 js 数据异步渲染的,nodejs 怎么获取网页解析这些数据

要处理使用JavaScript异步渲染内容的网页,您可以在 JavaScript 蜘蛛中使用 Puppeter 或 Playwright 等无头浏览器来获取网页,然后与动态渲染的内容进行交互。
下面是一个使用Puppeteer的例子:
const puppeteer = require('puppeteer');
(async () => {
// Launch a headless browser
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Navigate to the webpage
await page.goto('http://example.com');
// Wait for the asynchronous content to load
await page.waitForSelector('#async_content');
// Extract the data from the dynamically rendered content
const data = await page.evaluate(() => {
const asyncContent = document.querySelector('#async_content');
return asyncContent.innerHTML;
});
// Process or parse the extracted data as needed
console.log(data);
// Close the browser
await browser.close();
})();
在本例中,Puppeter 用于启动无头浏览器并导航到所需的网页。我们使用 page.waitForSelector() 来等待包含异步呈现内容的特定元素出现在页面上。
然后,我们使用 page.eevaluate() 在页面的上下文中执行自定义 JavaScript 代码,并提取包含动态呈现内容的元素的内部 HTML。
您可以修改 page.eevaluate() 函数以提取特定数据或对内容执行任何必要的解析或操作。
在运行代码之前,请记住使用 npm install puppeteer 或 yarn add puppeteer 安装 Puppeteer。
Cool:ChatAI
Link:https://www.cnblogs.com/farwish/p/17521445.html
[GPT] 网页中某些dom内容是通过 js 数据异步渲染的,nodejs 怎么获取网页解析这些数据的更多相关文章
- 在OCX初始化时获取其在网页中的DOM对象
OCX初始化的时候会调用SetClientSite,会传入IOleClientSite对象. CComQIPtr<IOleControlSite, &IID_IOleControlSit ...
- ASP.NET中Literal控件的使用方法(用于向网页中动态添加内容)
原文:https://www.jb51.net/article/82855.htm 可以将 Literal 控件用作网页上其他内容的容器.Literal 控件最常用于向网页中动态添加内容.简单的讲,就 ...
- mailto实现将用户在网页中输入的内容传递到本地邮件客户端
背景: 想在自己的网站中有这样一个设计: 用户点击提交按钮之后,就会打开本地邮件客户端,并自动将他在输入框中输入的内容作为邮件的内容,像下面这样: mailto可以帮助实现这个功能. 简介: mail ...
- 在网页中添加动画,使用WOW.js来实现
[来源] 页面在向下滚动的时候,有些元素会产生细小的动画效果.虽然动画比较小,但却能吸引你的注意 刚知道wow.js这个插件,之前写的类似滚动时页面效果都是自己用jQuery写的,现在有了插件,开发更 ...
- angular 中的dom操作(原生JS)
<h2>这是一个home组件--DOM操作演示</h2> <div id="box"> this is box </div> < ...
- 用Word收集网页中的内容,用文档结构图整理
如何用Word保存网页中的内容 网页中的内容,用什么保存好? 用笔记类软件是个不错的选择,还可以用 Word 保存,这样方便用“文档结构图”来整理网页. 如图:网页收集后用文档结构图进行整理. (图一 ...
- 输出内容 document.write() 可用于直接向 HTML 输出流写内容。简单的说就是直接在网页中输出内容
输出内容(document.write) document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容. 第一种:输出内容用""括起,直 ...
- 手机QQ内置网页,微信内置网页中进行分享到QQ和微信的操作
微信内的网页分享: API内容详见微信开发文档 https://mp.weixin.qq.com/wiki 这里需要注意的是:调用微信API的时候修改的是微信内网页右上角三个点那里打开后,选择分享之 ...
- 在网页中显示CHM (c# csharp .net asp.net winform)
CHM即“已编译的帮助文件”,主要由.hhc(目录文件)..hhk(索引文件)以及相应的帮助主题文件(.html,.htm)这些内容编译而成. 方法对比 在网页中显示CHM内容,大致有以下几种办法: ...
- HTML中动态生成内容的事件绑定问题【转载】
转自 http://www.hitoy.org/event-binding-problem-of-dynamically-generated-content.html 由于实际的需要,有时需要往网页中 ...
随机推荐
- Redis安装(Linux CentOS)
1. 环境介绍 主机系统:CentOS Redis版本:7.0.10 2. 安装过程 检查 GCC 版本 gcc -v redis 6.0 以上需要 gcc 5.3,升级 gcc.如果安装的redis ...
- python基础十(常用模块)
一 time与datetime模块 1.time import time # 时间分为三种格式: # 1.时间戳:从1970年到现在经过的秒数 # 作用:用于时间间隔的计算 print(time.ti ...
- 记录--通过Promise实现分批处理接口请求
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 如何通过 Promise 实现百条接口请求? 实际项目中遇到需要批量发起上百条接口请求怎么办? 最新案例代码在此!点击看看 前言 不知你项 ...
- IdentityServer4 如何修改绑定路径
最近用Nginx配置了下IdentityServer4然后客户端访问就开始报错,说是路径不一致,我Nginx配置的是 /ids/指向了内部的localhost:5555路径 然后外部网络访问ip:/i ...
- 大模型落地实战指南:从选择到训练,深度解析显卡选型、模型训练技、模型选择巧及AI未来展望—打造AI应用新篇章
大模型落地实战指南:从选择到训练,深度解析显卡选型.模型训练技.模型选择巧及AI未来展望---打造AI应用新篇章 0.前言大模型发展史 早期阶段(1950s~1980s) 在1950年代初期,人们开始 ...
- Java事件侦听器学习记录
前言 我们监听事件之前要有事件源source,创建事件源(Event),发布事件(publishEvent),然后才能到监听事件. 事件驱动机制是观察者模式(称发布订阅)具体实现,事件对象(Event ...
- CSP:Object as Point同会议论文,相似思想用于人脸和行人检测 | CVPR 2019
CSP将目标定义为中心点和尺寸,通过网络直接预测目标的中心和寸尺,相对于传统的RCNN类型检测算法轻量化了不少.整体思想与Object as Points撞车了,真是英雄所见略同 来源:晓飞的算法 ...
- copy 导入包含特殊符号的文本
客户提供了一份数据记录需要导入数据库,但是文本中有一个列的内容是反斜杠"\" ,因为""是特殊的转义字符,需要使用两个"\"才能表示,如果直 ...
- Django实现发送邮件
1.获取QQ邮箱授权码 打开QQ邮箱 --> 设置 --> 账号 --> 下拉页面 --> 开启POP3/SMTP服务 --> 短信验证 --> 点击"我 ...
- python爬虫配置随机请求头headers伪装User-Agent
python爬虫随机headers伪装fake_useragent fake_useragent 库 调用方法ua.random可以随机返回一个headers(User-Agent) from fak ...