您现在的位置是:网站首页> 多媒体开发
获得抖音作者作品
- 多媒体开发
- 2021-07-06
- 1348人已阅读
摘要
        为避免出现排版错乱,可更具实际情况添加站位字符,分享客户主页信息通过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×tamp=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);
})();其中count=21就是取多少数据max_cursor=上次最大的cursor
返回数格式如

上一篇:开源流媒体服务器SRS学习笔记