您现在的位置是:网站首页> 多媒体开发

获得抖音作者作品

摘要

为避免出现排版错乱,可更具实际情况添加站位字符,分享客户主页信息通过puppeteer获得,利用chrome的nodejs 交互插件实现对浏览器的控制

代码如下

const puppeteer = require('puppeteer');
const devices = require('puppeteer/DeviceDescriptors');
const iPhone = devices['iPhone 6'];
function returnCrawler(result){
    console.log("####"+JSON.stringify(result)+"####");
}

(async () => {
    const browser = await puppeteer.launch({
        executablePath: '../chrome-win/chrome.exe',
        /*
         args: [
         '--disable-web-security', // 允许跨域
         '--proxy-server=127.0.0.1:1080', // 代理
         ]
         */
        args: [
            '--disable-images', // 允许跨域

        ],
        headless: false
    });
    console.log(process.argv);
    const page = await browser.newPage();
    // 设置浏览器视窗
    /*);
     page.setViewport({
     width: 1920,
     height: 1080,
     });
     */
    await page.emulate(iPhone);
    //await page.goto('https://m.toutiaoimg.com/item/6706038150935888391/?app=news_article_lite&timestamp=1563929593&req_id=20190724085313010152028146551F0B7&group_id=6706038150935888391');
    //await page.goto("http://m.gifshow.com/s/U6kK7y0Q");
    await page.goto(process.argv[2]);
    await page
        .mainFrame()
        .addScriptTag({
            url: 'https://cdn.bootcss.com/jquery/3.2.0/jquery.min.js'
        });
    //await page.waitFor(2000);
    var allUrl="";
    //await page.setRequestInterception(true); //开启请求拦截

    page.on('requestfinished', request => {
        // 查看所有请求地址
        let ajaxurl=request.url();
         console.log("requestfinished1:"+ajaxurl);

        if(ajaxurl.indexOf("https://www.iesdouyin.com/web/api/v2/aweme/post/")!=-1)
        {
            allUrl=ajaxurl;
            console.log("allUrl:"+allUrl);
        }

        // ajax
        if (request.resourceType == "xhr") {
            // 匹配所需数据的请求地址
            allUrl+=request.url()+";";
            console.log("requestfinished2:"+request.url());


        }
    });

    const result = await page.evaluate((allUrl) => {
        console.log("加载完毕1");
        var m_ReturnOBJ={};
        m_ReturnOBJ.ajax=allUrl;
        console.log("加载完毕2");
        return m_ReturnOBJ;
    },allUrl);

    page.click('div[data-type="post"]');

    //等待三秒
    console.log("等待5秒");
    //await delay(3000);
    setTimeout(function(){
        console.log("关闭浏览器1");
        result.ajax=allUrl;
        returnCrawler(result);
        //await page.screenshot({path: 'jd.png'});
        console.log("关闭浏览器2");
        browser.close();
    },5000);

})();

数据地址为:https://www.iesdouyin.com/web/api/v2/aweme/post/?sec_uid=MS4wLjABAAAAfXtgNIKn2qBl1i9MbIDfGBZFPFyv1_MP8SuGQHMlMWE&count=21&max_cursor=1619935467000&aid=1128&_signature=DbTmOwAAbV3tdFS.6LEw2Q205i

其中count=21就是取多少数据max_cursor=上次最大的cursor

返回数格式如

1.png

Top