首页 > 解决方案 > 如何从 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。我该怎么办?

标签: javascriptweb-scrapingweb-crawlerapify

解决方案


如果我理解正确 - 你可以只使用.html()而不是.text(). 这样,您将获得内部 html 而不是元素的内部文本。

另一件要提的事情-您也可以放入bodyarghandlePageFunction对象: const handlePageFunction = async ({ request, body, $ }) => {

body将拥有页面的整个原始 html。


推荐阅读