内容分享:如何通过程序自动抓取微信公众号文章的内容和视频
优采云 发布时间: 2022-12-16 22:09内容分享:如何通过程序自动抓取微信公众号文章的内容和视频
如何下载微信公众号文章中的视频
如果只是针对一个文章,就很简单了。复制文章的地址,在谷歌浏览器中打开,然后点击视频右下角的全屏,点击右下角的圆点,点击下载。能。
当然你也可以通过F12查看视频标签或者查看网络数据请求。
这是一些基本的操作。下面主要是通过puppeteer获取和下载视频。
我之前其实通过puppeteer做过很多事情,比如登录,签到等等。因为总体没什么技术含量,主要是做个铺垫,后续研究如何抓取所有公众号。文章。
编码
const puppeteer = require('puppeteer'); const path = require('路径'); const fs = require('fs'); const helper = require('think-helper');//创建目录 api const axios = require('axios'); const 文件夹 = __目录名;
让 url = ; // 让 url = ;
function wsf(rs,ws){ return new Promise((r,j)=>{ rs.pipe(ws); ws.on('close',e=>{ r(); }) }); }
(异步函数(){
let browser = await puppeteer.launch({
headless : true,
executablePath : 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'
});
console.log(`开启新页面:[${url}]`);
const page = await browser.newPage();
let asyncArr = [];
page.on('response',async (res)=>{
try{
let json = await res.json();//
if(json && json.url_info){
console.log(`获取到异步视频数据.`);
asyncArr = asyncArr.concat(json.url_info);
}
}catch(e){}
})
console.log(`等待页面数据请求加载完成。`)
await page.goto(url,{
waitUntil : 'networkidle2'//请求结束
});
//url
let videoArr = await page.evaluate(()=>{
return $('video').get().map(t=>{
return $(t).attr('src');
})
});
//获取公众号信息
let name = await page.evaluate(()=>{
return $('.account_nickname_inner').length > 0 ? $('.account_nickname_inner').text() : $('.rich_media_meta_nickname #js_name').text();
});
<p>
let title = await page.evaluate(()=>{
return $('.common_share_title').length > 0 ? $('.common_share_title').text() : $('.rich_media_title').text();
});
name = name.trim();
title = title.trim();
console.log(`获取到公众号信息:[${name}-${title}]`)
//创建目录
let folderPath = path.join(folder,name,title);
helper.mkdir(folderPath);//创建目录
//对视频做处理。
let vr = [];
vr =vr.concat(videoArr.map(t=>{
let u = new URL(t);
let fileName = title+path.extname(u.pathname);
let filePath = path.join(folderPath,fileName);
return {
title : fileName,
filePath : filePath,
url : t
}
}));
vr = vr.concat(asyncArr.map(t=>{
let u = new URL(t.url);
let fileName = t.video_quality_wording +'-'+ title+path.extname(u.pathname);
let filePath = path.join(folderPath,fileName);
return {
title : fileName,
filePath : filePath,
url : t.url
}
}));
console.log(`开始准备下载视频文件`);
for(let video of vr){
console.log(`开始下载视频:[${video.title}]`)
await axios.get(video.url,{
responseType : 'stream'
}).then(async rs=>{
await wsf(rs.data,fs.createWriteStream(video.filePath));
})
}
//将页面滚动到最底部
await page.evaluate(()=>{
$('html').get(0).scrollTop = $('html').get(0).scrollHeight
});
console.log('等待资源加载.....')
// await page.evaluate(function(){
// let timeLimit = 60 * 1000;
// return new Promise((r,j)=>{
// let isLoaded = true;
// let start = +new Date();
// let t = setInterval(function(){
// $('img').get().forEach(t=>{
// var img = $(t).attr('src');
// var pimg = $(t).data('src');
// if(img.indexOf(pimg) > -1){
// isLoaded = isLoaded && true;
// }else{
// isLoaded = isLoaded && false;
// }
// })
// if(isLoaded || (+new Date()) - start > timeLimit){
// clearInterval(t);
// r();
// }
// },500);
// })
// });
console.log(`保存文章到PDF`)
await page.pdf({
path : path.join(folder,name,title,title+'.pdf'),
format : 'A4',
printBackground : true
});
console.log(`关闭浏览器`);
await browser.close();
process.exit(0);</p>
})(); 比较容易。不过,我也遇到了一个问题,就是资源懒加载的问题。
分享文章:seo怎么伪原创文章(seo中伪原创是否可取)
阅读本文的提示: 伪原创 是 seo 中的理想选择,seo 伪原创文章 作者,如何编写 seo 伪原创
如何SEO 伪原创文章 首先,搜索引擎的分析取决于你的内容布局。我建议您在核心关键字之前添加关键字。
如果不写合集,可以复制几篇文章的文章,拼成一个文章,这样文章就不会是收录了。其次,关键字嵌入是SEO中非常重要的因素。写文章时,需要匹配关键字。我们不能盲目地写大量的关键字。我们平时找了很多关键词写文章,但是别人搜索的时候可能有很多信息,需要搜索你选择的关键词。
当然不能用correlation和correlation代替的时候理解,这个大家可以理解。搜索引擎更喜欢相关的内容而不是你自己的内容,所以你不能只写一些不相关的内容。最后,我们在写SEO文章的时候,要注意内容的相关性。相关性不仅仅意味着 文章 的相关性,还包括相关内容。相关性决定链接是否正确,并为用户提供相关信息。
你写的时候能不能读懂整个内容的相关性,能不能给用户提供相关性。如果你没有这个能力,你就写不出高质量的内容,这需要对内容进行透彻的研究,并计划尽可能少地使用相关内容。如果您不熟悉,可以请我们的网站开发人员帮忙编写。写内容,用户会不会帮你搭建个人社交平台而不是复制网站到你的网站。
1.原创的内容
搜索引擎喜欢原创内容,我们在写内容的时候也要考虑原创内容。如果你不知道用户需要什么,你怎么能写产品 软文 以及它会带来什么好处。以下是创建高质量内容的四种主要方法。
2、广告的合理插播
同一个网站,不同的用户对你的产品有不同的要求。
3、当然交换链接的时候一定要注意广告。这很容易被搜索引擎认为是作弊,尤其是在初级搜索引擎中,这会让你更加混乱。
4. 不要在网站广告中插入广告