首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Scrapy+WordCloud-博客园前3000名博友全部文章抓取

一、前3000名人员列表页

1)进入首页,找到博客园积分列表。如下图:然后我们就找到前3000名大神的博客地址了。通过,词云分析了下,好多大神的博客都迁移到个人博客上了。

2)分析页面结构:每一个td都是,一个人员。

第一个small为排名

第二个a标签是昵称和用户名,以及首页的博客地址。用户名通过地址截取获取

第四个small标签是,博客数量以及积分,通过字符串分离后可以逐个获取到。

3)代码:使用xpath获取标签及相关的内容,获取到首页博客地址后,发送请求。

二、各人员博客列表页

1)页面结构:通过分析,每篇博客的a标签id中都包含“TitleUrl”,这样就可以获取到每篇博客的地址了。每页面地址,加上default.html?page=2,page跟着变动就可以了。

2)代码:置顶的文字会去除掉。

3)对于每篇博客的内容,这里没有抓取。也很简单,分析页面。继续发送请求,找到id为cnblogs_post_body的div就可以了。

三、数据存储MongoDB

这一部分没什么难的。记着安装pymongo,pip install pymongo。总共有80+万篇文章。

四、代理及Model类

scrapy中的代理,很简单,自定义一个下载中间件,指定一下代理ip和端口就可以了。

Model类,存放的是对应的字段。

五、wordcloud词云分析

对每个人的文章进行词云分析,存储为图片。wordcloud的使用用,可参考园内文章。

这里用了多线程,一个线程用来生成分词好的txt文本,一个线程用来生成词云图片。生成词云大概,1秒一个。

六、完整源码地址

https://github.com/hao15239129517/cnblogs

scrapy的GitHub地址:

https://github.com/scrapy/scrapy

wordcloud的github地址:

https://github.com/amueller/word_cloud

附:mongodb内存限制windows:

https://www.captaincodeman.com/2011/02/27/limit-mongodb-memory-use-windows

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180807G11CZI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券