javascript - 如何从 Apify Cheerio 爬虫获取整个 html?
问题描述
我想获得整个 html 而不仅仅是文本。
Apify.main(async () => {
const requestQueue = await Apify.openRequestQueue();
await requestQueue.addRequest({
url: //adress,
uniqueKey: makeid(100)
});
const handlePageFunction = async ({ request, $ }) => {
var content_to = $('.class')
};
// Set up the crawler, passing a single options object as an argument.
const crawler = new Apify.CheerioCrawler({
requestQueue,
handlePageFunction,
});
await crawler.run();
});
当我尝试这个时,爬虫返回复杂的对象。我知道我可以使用 .text() 从 content_to 变量中提取文本,但我需要带有 .text() 等标签的整个 html。我该怎么办?
解决方案
如果我理解正确 - 你可以只使用.html()
而不是.text()
. 这样,您将获得内部 html 而不是元素的内部文本。
另一件要提的事情-您也可以放入body
arghandlePageFunction
对象:
const handlePageFunction = async ({ request, body, $ }) => {
body
将拥有页面的整个原始 html。
推荐阅读
- go - Go 报告卡中的“文件未处理”
- c++ - 如何在此 c++ 代码中添加错误消息?
- python - 多个网址的网页抓取浏览器错误
- amazon-web-services - 具有多个操作的 FederatedPrincipal
- java - Activity 未在 Android Studio 中启动
- php - 如何在 PHP 中为 OOPS 构建结构函数?
- ruby - bundler:在 GitHub Actions 中运行时无法加载命令:ubuntu 中的 fastlane (/usr/local/bin/fastlane)
- c# - C# - 打印一个矩阵,并用新数据更新它
- java - 从另一个扩展活动以将图像从 firebase 存储检索到 firebase 实时数据库
- javascript - react-bootstrap-table 键域在初始组件渲染时未定义