如何使用NodeJS获得网页的完整内容[已关闭]

3xiyfsfu  于 2023-01-30  发布在  Node.js
关注(0)|答案(1)|浏览(107)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

7天前关闭。
Improve this question
我试图获取https://apps.shopify.com/的内容作为html响应,以将其保存在文件中以供进一步处理(我需要这些应用程序的名称和URL列表以执行刮取任务)。
我尝试使用httpget,axios和request,但都返回了一个未渲染的版本(我想page稍后会使用JS添加产品)。我需要完成的html代码。我如何在NodeJS中获得完成的结果?
(Or如果有人知道搜索Shopify应用商店API)。

s5a0g9ez

s5a0g9ez1#

要遍历所有应用程序链接,请检索url和文本:

const puppeteer = require('puppeteer');

(async () => {
    var url = 'https://apps.shopify.com/search?q=a';

    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto(url, { waitUntil: 'networkidle2' });

    await page.waitForXPath('//a[@data-app-link-details]');
    const links = await page.$x('//a[@data-app-link-details]');
    for (let i = 0; i < links.length; i++) {
        let hrefp = await links[i].getProperty('href');
        let href = await hrefp.jsonValue();
        let txt = await links[i].getProperty('textContent');
        let text = await txt.jsonValue();
        console.log(href + " " + text);
    }

    await browser.close();
})();

输出

https://apps.shopify.com/automizely-loyalty?locale=fr&search_id=22d826ac-82ca-42ef-ad32-d2736ba59bc8&surface_detail=a&surface_inter_position=1&surface_intra_position=22&surface_type=search 
            Automizely Referral&Affiliate
          
https://apps.shopify.com/klaviyo-email-marketing?locale=fr&search_id=22d826ac-82ca-42ef-ad32-d2736ba59bc8&surface_detail=a&surface_inter_position=1&surface_intra_position=23&surface_type=search 
            Klaviyo: Email Marketing & SMS
          
https://apps.shopify.com/govx-id?locale=fr&search_id=22d826ac-82ca-42ef-ad32-d2736ba59bc8&surface_detail=a&surface_inter_position=1&surface_intra_position=24&surface_type=search 
            GovX ID Exclusive Discounts
[...]

相关问题