如何在文件中获取RPi上javascript之后的完整html
我有一个RPI4,我想通过终端生成一个website.html,它具有网页的完整呈现html。 我想这样做,例如,为了搜索整个网页的字符串或模式等。。。 我可以使用类似于如何在文件中获取RPi上javascript之后的完整html,javascript,html,web-scraping,puppeteer,headless-browser,Javascript,Html,Web Scraping,Puppeteer,Headless Browser,我有一个RPI4,我想通过终端生成一个website.html,它具有网页的完整呈现html。 我想这样做,例如,为了搜索整个网页的字符串或模式等。。。 我可以使用类似于wget或curl的方法来实现这一点,例如wget-owebsite.htmlhttps://www.example.com 以上就是我想要的,但是它不支持javascript 有些网站(比如谷歌)几乎所有内容都是javascript,所以我无法通过这种方式获得最终的html 我一整天都在寻找一个有效的解决方案,我已经找到了
wget
或curl
的方法来实现这一点,例如wget-owebsite.htmlhttps://www.example.com
以上就是我想要的,但是它不支持javascript
有些网站(比如谷歌)几乎所有内容都是javascript,所以我无法通过这种方式获得最终的html
- 我一整天都在寻找一个有效的解决方案,我已经找到了
发现我需要一个无头浏览器之类的东西。我试过了
类似于
的东西,但它们不起作用,也不再存在 维持PhantomJs
- 我试过《木偶演员》,但只能抓到一张截图。不是Html。我以为
有我想要的,但我 无法获取/写入文件。当我page.content()
ed它时,我也在那里看到了javascript。。。如果有人知道怎么做(写一篇 文件与最终的html)使用木偶,然后请告诉我console.log
wget
这样的“简单”解决方案也可以使用javascript吗?
是否有一个简单的工作流程/说明来实现这样的目标
如果你能告诉我一些操作命令,请告诉我。我发现一些工具非常复杂,我不熟悉所有的编程语言,以便使这项工作
非常感谢您的帮助。如果您安装了Node.js和puppeter,您可以使用这个简单的脚本来执行带有JavaScript的HTML。将其用作:
node script.js url pagename
出于测试目的,默认的url
是'http://example.com/“
,默认的pagename
是当前目录中的'page-timestamp.html'
const fs=require('fs');
const puppeter=require('puppeter');
const url=process.argv[2]| |'http://example.com/';
const path=process.argv[3]| | `page-${Date.now()}.html`;
(异步函数main(){
const browser=wait puppeter.launch();
const[page]=wait browser.pages();
wait page.goto(url,{waitUntil:'networkidle0'});
writeFileSync(路径,wait page.content());
等待浏览器关闭();
})().catch(console.error);
非常感谢您的帮助。它工作得很好。如果有人尝试此操作并得到“错误:启动浏览器进程失败!”请尝试替换此行const browser=wait puppeter.launch()代码>使用const browser=wait puppeter.launch({executablePath:'/usr/bin/chromium browser'})代码>它对我有用!!!