puppeteer - 如何使用 puppeteer 从网站打印响应 json?
问题描述
我尝试让谷歌翻译网站为我做一些工作,该网站返回一个带有 json 文件的空白网页。使用网络浏览器,我可以保存 json 文件并在文本编辑器中打开它。
我正在尝试使用 puppeteer 自动完成此操作。这是我的代码:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless:false, args: ["--no-sandbox"]});
const page = await browser.newPage();
// Approach 1:
const response = await page.goto('https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=zh&dt=t&q=Edit%20Report');
let text = await response.text();
console.log(text);
let json = await response.json();
console.log(json);
await browser.close();
})();
当我运行此代码时,会启动浏览器,但返回的 json 文件仍会自动保存到磁盘而不是打印到控制台。我应该使用什么木偶类来完成这项任务?
解决方案
由于它是 API 调用并且预期结果是 JSON,您可以使用简单的 nodsJS 或 Jquery 代码返回响应,如下所示。
$.get('https://translate.googleapis.com/translate_a/single?`client=gtx&sl=en&tl=zh&dt=t&q=Edit%20Report', (data) =>`
{
console.log(data);
});
但是如果你特别喜欢使用 puppeteer 并且想要返回响应。您将执行以下操作。
通过运行将 Jquery 依赖项添加到您的项目中
npm install jquery
将 JQuery 导入项目。
调用以下代码,无需启动浏览器。
$.get('https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=zh&dt=t&q=Edit%20Report', (data) =>
{
console.log(data);
});
这是 JSfiddle 代码的链接https://jsfiddle.net/faizmagic/0h6cm1o4/latest/
我希望这有帮助。
推荐阅读
- java - Selenium XPaths 中的魔法命名空间前缀
- python-3.x - 针对特定方法从另一个安装目录导入包
- java - Windows中的Java FileSystemPreferencesFactory
- javascript - 获取悬停时样式属性更改的元素列表
- c++ - c++17通过生成预先声明的类型列表的笛卡尔积来制作std::variant
- javascript - GraphQL 错误:$completedAt 的默认值与 React Apollo 中的 DateTime 类型不匹配?
- mysql - 如何在“推荐列”中获取“用户 ID”的计数
- android - 如何从 Prod 构建风格中删除库?
- css - 为什么`minmax`总是使用最大空间?
- pug - 您可以在不使用扩展的情况下在哈巴狗中嵌套标签吗?