記一次批量定時(shí)抓取微信公眾號文章的實(shí)現
優(yōu)采云 發(fā)布時(shí)間: 2020-08-09 15:40記一次批量定時(shí)抓取微信公眾號文章的實(shí)現
抓取前的說(shuō)明和打算
本次抓取的選擇的語(yǔ)言是java,本文章不會(huì )將整個(gè)工程的全部代碼全部貼出,只會(huì )提供核心代碼和抓取思路的說(shuō)明。
數據的抓取
抓取文章的來(lái)源為搜狗陌陌網(wǎng)站,網(wǎng)站如下圖。
抓取的思路如下
一般抓取微信公眾號的文章都是以微信公眾號的id為關(guān)鍵字 ,我們可以通過(guò)url+ keyword的方式直接跳轉到想要抓取公眾號頁(yè)面,keyword即為想要搜索微信公眾號的名稱(chēng)或則是id;
// 搜狗微信搜索鏈接入口
String sogou_search_url = "http://weixin.sogou.com/weixin?type=1&query="
+ keyword + "&ie=utf8&s_from=input&_sug_=n&_sug_type_=";
為了防止網(wǎng)站對爬蟲(chóng)的初步攔截,我們可以使用Selenium (瀏覽器自動(dòng)化測試框架)來(lái)偽裝自己的爬蟲(chóng),我們使用的chrome,這里須要注意自己的chrome版本與使用的webdriver的版本是對應的;
ChromeOptions chromeOptions = new ChromeOptions();
// 全屏,為了接下來(lái)防抓取做準備
chromeOptions.addArguments("--start-maximized");
System.setProperty("webdriver.chrome.driver", chromedriver);
WebDriver webDriver = new ChromeDriver(chromeOptions);
到達微信公眾號列表頁(yè)面,如下圖,獲取微信公眾號鏈接。
<p> // 獲取當前頁(yè)面的微信公眾號列表
List weixin_list = webDriver
.findElements(By.cssSelector("div[class='txt-box']"));
// 獲取進(jìn)入公眾號的鏈接
String weixin_url = "";
for (int i = 0; i