需求分析
- 最近新型肺炎肆虐寒假在家闲来无事就突发奇想,爬取新浪微博中与肺炎患者自救有关的帖子以texcel形式保存起来做一些分析。
- 经过一番折腾,最终使用webMagic框架成功爬取了200个微博页面共3263条帖子。
- 立图为证
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/409b6e40fb0174cca8bbf3975fa84128.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5f10be69ca11e566bd8808c5d19d45ea.png)
环境搭建
- 首先创建一个空的maven工程。
- 在pom.xml文件引入相关依赖
<dependencies>
<!-- 读写excel文件-->
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
</dependency>
<!-- webmagic-->
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>webmagic-core</artifactId>
<version>0.7.3</version>
</dependency>
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>webmagic-extension</artifactId>
<version>0.7.3</version>
</dependency>
<!-- 布隆过滤器-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>25.1-jre</version>
</dependency>
</dependencies>
实现步骤
- 因为自己爬取的是肺炎患者自助相关帖子,爬虫的入口链接为 https://s.weibo.com/weibo?q=肺炎患者自助&Refer=index&page=1。
- 我们知道微博必须要登录才能访问,如果直接爬取链接爬到的只是空页面。为了方便,这里直接伪装一个登录态。
- 首先登录微博,然后在浏览器调试窗口抓取cookie信息。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b22d62e47c43eec00f8b50a3cd6c2dc8.png)
- 然后将cookie信息添加到请求头中,伪装一个登录态。
Site site = Site.me()
.setCharset("utf8") //设置编码
.setTimeOut(10*1000) //设置超时时间
.setRetrySleepTime(3000) //设置重试的间隔时间
.setRetryTimes(3) //设置重试的次数
//添加抓包获取的cookie信息
.addCookie("s.weibo.com", "ALF","1612149474")
.addCookie("s.weibo.com", "Apache","8262060252464.451.1580612613221")
.addCoo