手寫抓取單個微信公衆號的全部文章列表

單個微信公衆號抓取

最近看了很多公衆號的文章,突然想把全部的公衆號抓取的想法.
於是,搜了一下,發現很多的博客寫怎麼抓取,但是嘗試下來,還是比較麻煩,基本上沒有幾個可以使用的.
於是研究一下思路,主要是將文章列表轉到瀏覽器上,然後再進行抓取.
於是我本人就按這個思路,自己做了一個微信公衆號的爬蟲,雖然速度比較慢,但是也夠爬下來列表了.
下面是詳細步驟

  1. 首先在微信的客戶端上登錄
  2. 點擊頭像 進入公衆號
    在這裏插入圖片描述
  3. 點擊公衆號的頭像,找文章列表按鈕
    在這裏插入圖片描述
  4. 然後將文章列表點開,
  5. 轉發給自己的 文件傳輸助手
    在這裏插入圖片描述
  6. 用默認瀏覽器打開 我選擇的本地瀏覽器是 搜狗
  7. 按F12打開 頁面調試
  8. 進入到console 裏複製下面的代碼進去

let map = new Map();
let lis = [];
let before = 0;
let inter = 0;
let scrollToY = 0;

function scrollMyPage(){
	inter = setInterval(collect_data,2000);
}


function collect_data(){
	before = map.size;
	let msgs = document.getElementsByClassName("weui_media_box");
	for(let msg of msgs){
		let dt_ele = msg.getElementsByClassName("weui_media_extra_info")
		let title_ele = msg.getElementsByClassName("weui_media_title"); 

		let dt =  dt_ele[0].innerText;
		let title = "";
		let url = "";

		try{
			url = title_ele[0].attributes["hrefs"].nodeValue;
			title = title_ele[0].innerText;
		}catch(e){
			console.log(e);
			console.log(msg);
		}
		
		let obj = {};
		obj["dt"] = dt;
		obj["url"] = url;
		obj["title"] = title;

		map.set(url,obj)
		
	}
	//操作過後,就沒數據了...
	if(before == map.size){
		clear_inter();
		save_data();
	}
	scrollToY = scrollToY + 4000;
	window.scrollTo(0,scrollToY);
}

function save_data(){
	for(let ent of map){
		lis.push(ent[1]);
	}

	// 創建a標籤
	var elementA = document.createElement('a');

	//文件的名稱爲時間戳加文件名後綴
	elementA.download = +new Date() + ".json";
	elementA.style.display = 'none';
	
	//生成一個blob二進制數據,內容爲json數據
	var blob = new Blob([JSON.stringify(lis)]);
      
	//生成一個指向blob的URL地址,並賦值給a標籤的href屬性
	elementA.href = URL.createObjectURL(blob);
	document.body.appendChild(elementA);
	elementA.click();
	document.body.removeChild(elementA);

}

function clear_inter(){
	clearInterval(inter);
}

scrollMyPage();
  1. 等待頁面抓取完成,注意不要關閉頁面,如果頁面沒有到底就停止了抓取,就重新打開頁面,然後按F12再操作一遍
  2. 抓取完成後,會產生一個下載文件,下載到本地,就拿到了該公衆號的全部文件.
  3. 詳細的列表頁,可以單獨抓取.

操作起來比較簡單,就是要等頁面抓取完才能挪動頁面,相對來說比較簡單.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章