Python爬虫,看看我最近博客都写了啥,带你制作高逼格的数据聚合云图
转载请标明出处:
http://blog.csdn.net/forezp/article/details/70198541
本文出自方志朋的博客
今天一时兴起,想用python爬爬自己的博客,通过数据聚合,制作高逼格的云图(对词汇出现频率视觉上的展示),看看最近我到底写了啥文章。
一、直接上几张我的博客数据的云图
1.1 爬取文章的标题的聚合
1.2 爬取文章的摘要的聚合
1.3 爬取文章的标题+摘要的聚合
我最近写了SpringCloud系列教程,还有一些微服务架构方面,从云图上看,基本吻合。你若不信,可以进我的博客看看,数据还是非常准确的
二、技术栈
- 开发工具: pycharm
- 爬虫技术:bs64、requsts、jieba
- 分析工具:wordArt
三、爬虫构架设计
整个爬虫架构非常简单:
- 爬取我的博客:http://blog.csdn.net/forezp
- 获取数据
- 将数据用“结巴”库,分词。
- 将得到的数据在在artword上制作云图。
- 将制作出来的云图展示给用户。
四、具体实现
先根据博客地址爬去数据:
url = 'http://blog.csdn.net/forezp'
titles=set()
def download(url):
if url is None:
return None
try:
response = requests.get(url, headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36',
})
if (response.status_code == 200):
return response.content
return None
except:
return None
解析标题
def parse_title(html):
if html is None:
return None
soup = BeautifulSoup(html, "html.parser")
links = soup.find_all('a', href=re.compile(r'/forezp/article/details'))
for link in links:
titles.add(link.get_text())
解析摘要:
def parse_descrtion(html):
if html is None:
return None
soup=BeautifulSoup(html, "html.parser")
disciptions=soup.find_all('div',attrs={'class': 'article_description'})
for link in disciptions:
titles.add(link.get_text())
用“结巴”分词,"激8"分词怎么用,看这里:https://github.com/fxsjy/jieba/
def jiebaSet():
strs=''
if titles.__len__()==0:
return
for item in titles:
strs=strs+item;
tags = jieba.analyse.extract_tags(strs, topK=100, withWeight=True)
for item in tags:
print(item[0] + '\t' + str(int(item[1] * 1000)))
因为数据比较少,所以我直接打印在控制台,并把它复制下来,更好的方法是存在mongodb中。
制作云图:
用 artword在线工具,地址:https://wordart.com
首先:
导入从控制台复制过来的数据:
令人尴尬的是,这个网站在绘制图的时候不支持中文,需要你从c:/windows/fonts下选择一个支持中文的字体,mac 用户从windows拷下文件夹也可以,或者在网上下。
然后点击Visulize就可以生成高逼格的云图了。讲解完毕,有什么需要改进的请大家留言。
源码下载:https://github.com/forezp/ZhihuSpiderMan/tree/master/blogspider
五、文章参考
优秀文章推荐:
扫码关注公众号有惊喜
(转载本站文章请注明作者和出处 方志朋的博客)
Python爬虫,看看我最近博客都写了啥,带你制作高逼格的数据聚合云图的更多相关文章
- Python爬虫简单实现CSDN博客文章标题列表
Python爬虫简单实现CSDN博客文章标题列表 操作步骤: 分析接口,怎么获取数据? 模拟接口,尝试提取数据 封装接口函数,实现函数调用. 1.分析接口 打开Chrome浏览器,开启开发者工具(F1 ...
- Python爬虫:爬取自己博客的主页的标题,链接,和发布时间
代码 # -*- coding: utf-8 -*- """ ------------------------------------------------- File ...
- python爬虫-韩寒新浪博客博文
博客地址:http://blog.sina.com.cn/s/articlelist_1191258123_0_1.html 爬第一页博文 #-*-coding:utf--*- import re # ...
- python 爬虫 爬取序列博客文章列表
python中写个爬虫真是太简单了 import urllib.request from pyquery import PyQuery as PQ # 根据URL获取内容并解码为UTF-8 def g ...
- Python爬虫抓取csdn博客
昨天晚上为了下载保存某位csdn大牛的所有博文,写了一个爬虫来自己主动抓取文章并保存到txt文本,当然也能够 保存到html网页中. 这样就能够不用Ctrl+C 和Ctrl+V了,很方便.抓取别的站点 ...
- 【java爬虫】---爬虫+jsoup轻松爬博客
爬虫+jsoup轻松爬博客 最近的开发任务主要是爬虫爬新闻信息,这里主要用到技术就是jsoup,jsoup 是一款 Java的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非 ...
- 这几天有django和python做了一个多用户博客系统(可选择模板)
这几天有django和python做了一个多用户博客系统(可选择模板) 没完成,先分享下 断断续续2周时间吧,用django做了一个多用户博客系统,现在还没有做完,做分享下,以后等完善了再慢慢说 做的 ...
- python环境变量配置 - CSDN博客
一.下载: 1.官网下载python3.0系列(https://www.python.org/) 2.下载后图标为: 二.安装: Window下: 1.安装路径: 默认安装路径:C:\python35 ...
- 云开发中的战斗机 Laf,让你像写博客一样写代码
各位云原生搬砖师 and PPT 架构师,你们有没有想过像写文章一样方便地写代码呢? 怎样才能像写文章一样写代码? 理想的需求应该是可以在线编写.调试函数,不用重启服务,随时随地在 Web 上查看函数 ...
随机推荐
- RTT设备驱动之看门狗
看门狗的喂狗一般放在空闲任务钩子函数里面. rt_thread_idle_sethook(idle_hook); static void idle_hook(void) { /* 在空闲线程的回调函数 ...
- python标准输入
备忘 #! /usr/bin/python2.6 import sys for line in sys.stdin: print line,
- bundle绑定资源表
1.注册绑定资源表 在application_Start函数中: (注意不要加拓展名,否则压缩时出问题) BundleTable.Bundles.Add(new ScriptBundle(" ...
- elasticsearch结构化查询过滤语句-----4
1.之前三节讲述的都是索引结构及内容填充的部分,既然添加了数据那我们的目的无非就是增产改查crudp,我先来讲讲查询-----结构化查询 我们看上图截图两种方式: 1)第一种,在索引index5类型s ...
- 用canvas绘制一个简易时钟
在见识了html5中canvas的强大,笔者准备制作一个简易时钟. 下面就是成果啦,制作之前我们先分析一下,绘制一个时钟需要做哪些准备. 一 . 1.首先这个时钟分为表盘,指针(时针,分针,秒针)和数 ...
- SSL--Windows下生成OpenSSL自签证书
:OPenSSL下载地址:https://www.openssl.org/source/ 编译好的OpenSSL下载地址: http://slproweb.com/products/Win32Open ...
- SQL Server 2008R2 18456错误解决方案
SQL Server 2008R2 18456错误解决方案 微软解释说,因密码或用户名错误而使身份验证失败并导致连接尝试被拒时,类似下面的消息将返回到客户端:“用户 '<user_name> ...
- eclipse 中 添加 tomcat后,启动访问时出现404
1.切换到 server view. 2.双击出问题的 Server,出现如下页面. 3.选中Server,右键,点击选项卡的 Publish,就能进行编辑. 4.Server path 选中第二项: ...
- js&jquery:添加事件的三种方法和常用的一些事件
一.添加事件的方法 1.EventTarget.addEventListener添加 获取事件目标元素,通过addEventListener函数添加 // Assuming myButton is a ...
- IPV4基本知识介绍
转自华为官网 1.1 介绍 定义 IPv4(Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族.它工作在TCP/IP协议栈的网络层,该层与OSI参考 ...