您现在的位置是:网站首页> 多媒体开发
获得抖音作者作品
- 多媒体开发
- 2021-07-06
- 1347人已阅读
摘要
为避免出现排版错乱,可更具实际情况添加站位字符,分享客户主页信息通过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学习笔记