记一次批量定时抓取微信公众号文章的实现
优采云 发布时间: 2020-08-09 15:40记一次批量定时抓取微信公众号文章的实现
抓取前的说明和打算
本次抓取的选择的语言是java,本文章不会将整个工程的全部代码全部贴出,只会提供核心代码和抓取思路的说明。
数据的抓取
抓取文章的来源为搜狗陌陌网站,网站如下图。
抓取的思路如下
一般抓取微信公众号的文章都是以微信公众号的id为关键字 ,我们可以通过url+ keyword的方式直接跳转到想要抓取公众号页面,keyword即为想要搜索微信公众号的名称或则是id;
// 搜狗微信搜索链接入口
String sogou_search_url = "http://weixin.sogou.com/weixin?type=1&query="
+ keyword + "&ie=utf8&s_from=input&_sug_=n&_sug_type_=";
为了防止网站对爬虫的初步拦截,我们可以使用Selenium (浏览器自动化测试框架)来伪装自己的爬虫,我们使用的chrome,这里须要注意自己的chrome版本与使用的webdriver的版本是对应的;
ChromeOptions chromeOptions = new ChromeOptions();
// 全屏,为了接下来防抓取做准备
chromeOptions.addArguments("--start-maximized");
System.setProperty("webdriver.chrome.driver", chromedriver);
WebDriver webDriver = new ChromeDriver(chromeOptions);
到达微信公众号列表页面,如下图,获取微信公众号链接。
<p> // 获取当前页面的微信公众号列表
List weixin_list = webDriver
.findElements(By.cssSelector("div[class='txt-box']"));
// 获取进入公众号的链接
String weixin_url = "";
for (int i = 0; i