Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在文件中获取RPi上javascript之后的完整html_Javascript_Html_Web Scraping_Puppeteer_Headless Browser - Fatal编程技术网

如何在文件中获取RPi上javascript之后的完整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 我一整天都在寻找一个有效的解决方案,我已经找到了

我有一个RPI4,我想通过终端生成一个website.html,它具有网页的完整呈现html。 我想这样做,例如,为了搜索整个网页的字符串或模式等。。。 我可以使用类似于
wget
curl
的方法来实现这一点,例如
wget-owebsite.htmlhttps://www.example.com
以上就是我想要的,但是它不支持javascript

有些网站(比如谷歌)几乎所有内容都是javascript,所以我无法通过这种方式获得最终的html

  • 我一整天都在寻找一个有效的解决方案,我已经找到了 发现我需要一个无头浏览器之类的东西。我试过了 类似于
    PhantomJs
    的东西,但它们不起作用,也不再存在 维持
  • 我试过《木偶演员》,但只能抓到一张截图。不是Html。我以为
    page.content()
    有我想要的,但我 无法获取/写入文件。当我
    console.log
    ed它时,我也在那里看到了javascript。。。如果有人知道怎么做(写一篇 文件与最终的html)使用木偶,然后请告诉我
难道没有像
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'})它对我有用!!!