python爬虫——对爬到的数据进行清洗的一些姿势(5)
做爬虫,当然就要用数据。想拿数据进行分析,首先清洗数据。这个清洗数据包括清除无用数据列和维度,删除相同数据,对数据进行勘误之类的。
从各大不同新闻网站可以爬到重复新闻。。。这个可以有。之前为了对爬到的新闻信息进行深度挖掘去了这个网站http://blog.reetsee.com/archives/237虽说没有对数据进行更进一步的挖掘,好歹有处理数据。处理重复新闻可以使用python结巴分词。统计分词信息,词典差距过大,词典频度比差距过大,都可以算不同新闻。
对新闻内容字符串进行检查需要这3种操作:提取分词,统计频度和查重。
提取分词函数:
def ExtractTagsFromContent(content, num_of_tags):
tags = jieba.analyse.extract_tags(content, topK = num_of_tags)
return tags
统计频度函数:
def GetTermFreqFromContent(tags, content):
tfdict = {}
for tag in tags:
tfdict[tag] = 0 #把已出现的词频度初始化为0 seg_list = jieba.cut(content) #把新闻内容切分成词
has_words = False
for word in seg_list:
if tfdict.has_key(word):
tfdict[word] = tfdict[word] + 1 #统计频度
has_words = True if has_words:
return tfdict
else:
return None
余弦相似度函数:
def CosinSimilarity(vector1, vector2):
if len(vector1) != len(vector2):
print "Error: vector1:" + vector1 + " and vector2: " + vector2 + "have different dimensions"
return None numerator = 0.0
v1_square = 0.0
v2_square = 0.0
for i in range(0, len(vector1)):
numerator += vector1[i] * vector2[i]
v1_square += vector1[i] * vector1[i]
v2_square += vector2[i] * vector2[i]
denominator = math.sqrt(v1_square * v2_square)
if denominator == 0:
return None
else:
return numerator / denominator
查重函数:
def FindSimilarPassageFromSet(news_set, example_tf):
heap = []
tags = []
for tag in example_tf.keys():
tags.append(tag) for file_path in news_set:
tf = GetTermFreqFromFile(tags, file_path)
if tf == None:
continue
similarity = CosinSimilarityForDict(example_tf, tf)
# 插入堆
if not similarity == None:
heap.append(SimilarPassage(similarity * -1.0, file_path))
# 把最高相似度弹出(有*-1的关系,最小弹出实际是最大弹出)
heapq.heapify(heap)
if len(heap) == 0:
return None
result = heapq.heappop(heap)
if result.Relevant():
print "Similarity: " + str(result.similarity)
news_set.discard(result.file_path)
return result.file_path
else:
return None
然后新闻就成功去重了。
爬新浪微博的数据,wap端比较容易爬,而且数据也较为纯净。
不过根据关键词爬出来的数据还是有些奇怪的:
:春季番最新销量:《机甲少女》热卖 《樱花任务》暴死 被认为是“买手办送光碟”的《机甲少女FRAME ARMS GIRL》第1卷不负众望取得了好成绩。而P.A.WORKS动画公司继《花开伊吕波》《白箱》之后的第三部工作题材动画《樱花任务》销量仅为1392张,在春季番中属于垫底。<br/>2017年春季番销量及排名情况(截止2017年7月23日)<br/><br/>第1名:《碧蓝幻想》 53571张<br/><br/>第2名:《偶像大师 灰姑娘女孩剧场》 42959张<br/><br/>第3名:《埃罗芒阿老师》 10417张<br/><br/>第4名:《高校星歌剧》第2季 9827张<br/><br/>第5名:《机甲少女FRAME ARMS GIRL》 7614张<br/><br/>第6名:《进击的巨人》第2季 7525张<br/><br/>第7名:《王室教师海涅》 6532张<br/><br/>第8名:《夏目友人帐》第6季 4862张<br/><br/>第9名:《我的英雄学院》第2季 4145张<br/><br/>第10名:《sin七大罪》 3305张<br/><br/>第11名:《Re:CREATORS》 2631张<br/><br/>第12名:《不正经的魔术讲师与禁忌教典》 2485张<br/><br/>第13名:《末日时在做什么?有没有空?可以来拯救吗?》 1674张<br/><br/>第14名:《剑姬神圣谭》 1656张<br/><br/>第15名:《武装少女》 1425张<br/><br/>第16名:《樱花任务》 1392张<br/><br/>第17名:《时钟机关之星》 896张<br/><br/>第18名:《怪怪守护神》 834张<br/><br/>第19名:《覆面系Noise》 823张<br/><br/>第20名:《喧哗番长乙女》 673张<br/><br/>第21名:《恋爱暴君》 556张
我说的是任天堂的游戏arms...
:可惜,lost stars没有音频版的,不能更好听!实力唱将!幸好,open arms有啊<a href="/n/M%E9%B9%BFM">@M鹿M</a> 的<a href="https://weibo.cn/sinaurl?f=w&u=http%3A%2F%2Ft.cn%2FRorgJGY&ep=FerXXxPbm%2C1763629124%2CFerXXxPbm%2C1763629124">触发(Set it off)</a> 打榜就行!<a href="http://weibo.cn/pages/100808topic?extparam=%E4%BA%9A%E6%B4%B2%E6%96%B0%E6%AD%8C%E6%A6%9C&from=feed">#亚洲新歌榜#</a> 现在参与打榜,还有机会获得8月27日举办的亚洲新歌榜2017年度盛典门票!
看来arms这个关键词太有歧义了
:发售中的Switch平台游戏《ARMS》公开全新TVCM,在近日任天堂公开的Q1财报中《ARMS》成功突破百万销量,期待今后的表现。[鼓掌] <a href="https://weibo.cn/sinaurl?f=w&u=http%3A%2F%2Ft.cn%2FR9yV0Fz&ep=FerBM7lQy%2C1764127957%2CFerBM7lQy%2C1764127957">秒拍视频</a>
有个正常的了。。。不过后面的话题符号明显就是在捣乱
:<a href="http://weibo.cn/pages/100808topic?extparam=%E5%AD%A6%E5%AD%90%E9%A3%8E%E9%87%87&from=feed">#学子风采#</a> 【厉害了, 集大学子获第41届ACM国际大学生程序设计竞赛亚洲区域赛铜奖】日前,ACM/ICPC(国际大学生程序设计竞赛)亚洲区域赛在青岛落下帷幕。北京大学、复旦大学、武汉大学、厦门大学等115所高校的186支代表队参赛。经过激烈角逐,由我校计算机工程学院2014级学生吴晓仁、阚航、陈明振组成的集大ACM集训队(指导教师:林阳斌)获得一枚铜牌。<br/><br/> ACM国际大学生程序设计竞赛(简称ACM-ICPC)是由国际计算机界具有悠久历史的权威性组织ACM学会(Association for Computing Machinery)主办,世界上公认的规模最大、水平最高、参与人数最多的国际大学生程序设计竞赛,被业界称为IT界的“奥林匹克”竞赛。 <a href="/n/%E9%9B%86%E5%A4%A7%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2%E5%AD%A6%E7%94%9F%E4%BC%9A">@集大计算机工程学院学生会</a>
后面那段人人皆知的介绍能不能去掉啊。。。
:ACM-ICPC竞赛算法类型 - 海岛Blog - CSDN博客 <a href="https://weibo.cn/sinaurl?f=w&u=http%3A%2F%2Ft.cn%2FRK1sG4m&ep=FdolV9DkF%2C6286510827%2CFdolV9DkF%2C6286510827">http://t.cn/RK1sG4m</a>
一看就知道这只是博客文章的入口。。。如果标题不对,想除杂就更麻烦了
:【我校学子在ACM国际大学生程序设计竞赛全国邀请赛上摘金】2017年5月,ACM国际大学生程序设计竞赛(ACM-ICPC)全国邀请赛在西北工业大学举行。由我校学生李志远、徐经纬、陈笑天三名同学组成的队伍“challenge”夺得金奖,捧回了我校历史上的第一枚ACM-ICPC金牌。详情可见<a href="https://weibo.cn/sinaurl?f=w&u=http%3A%2F%2Ft.cn%2FRol0sxX&ep=F9Vlbao8b%2C1845850033%2CF9Vlbao8b%2C1845850033">http://t.cn/Rol0sxX</a>
详情的数据是否有用?要不要特意再写一次分析策略?
:【我校学子在ACM国际大学生程序设计竞赛全国邀请赛上摘金】2017年5月,ACM国际大学生程序设计竞赛(ACM-ICPC)全国邀请赛在西北工业大学举行。由我校学生李志远、徐经纬、陈笑天三名同学组成的队伍“challenge”夺得金奖,捧回了我校历史上的第一枚ACM-ICPC金牌。详情可见<a href="https://weibo.cn/sinaurl?f=w&u=http%3A%2F%2Ft.cn%2FRol0sxX&ep=F9Vlbao8b%2C1845850033%2CF9Vlbao8b%2C1845850033">http://t.cn/Rol0sxX</a>
搜索结果收录了2次。。。
:等等,考虑到今后将推出的游戏,难不成NB社Switch上第三方一哥?回想起来马车8dx和arms后面都有对NBGI的特别鸣谢,真是可怕极了 <a href="https://weibo.cn/sinaurl?f=w&u=http%3A%2F%2Ft.cn%2FRU14lZk&ep=FeUqn8BXP%2C1886986281%2CFeUqn8BXP%2C1886986281">日本·横滨</a>
要不要把地址也作为变量录入呢?
上面的问题只是一部分。。。如果爬其他数据还会有更多的问题要考虑。有空再考虑一下清洗策略
python爬虫——对爬到的数据进行清洗的一些姿势(5)的更多相关文章
- Python爬虫之爬取慕课网课程评分
BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...
- [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)
转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...
- from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)
使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...
- 【Python必学】Python爬虫反爬策略你肯定不会吧?
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 正文 Python爬虫反爬策略三部曲,拥有这三步曲就可以在爬虫界立足了: ...
- 初次尝试python爬虫,爬取小说网站的小说。
本次是小阿鹏,第一次通过python爬虫去爬一个小说网站的小说. 下面直接上菜. 1.首先我需要导入相应的包,这里我采用了第三方模块的架包,requests.requests是python实现的简单易 ...
- python爬虫实战---爬取大众点评评论
python爬虫实战—爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经 ...
- Python爬虫工程师必学——App数据抓取实战 ✌✌
Python爬虫工程师必学——App数据抓取实战 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统 ...
- Python爬虫工程师必学APP数据抓取实战✍✍✍
Python爬虫工程师必学APP数据抓取实战 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大 ...
- Python爬虫工程师必学——App数据抓取实战
Python爬虫工程师必学 App数据抓取实战 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大 ...
随机推荐
- Jmeter中使用SSH插件,连接远程linux机器执行命令
一.Why 在云主机测试中,需要使用SSH协议连接云主机进行相关操作 在python中使用paramiko库很好实现,在如果要使用jmeter做性能测试时,怎么做? 二.解决 既然原生jmeter没有 ...
- 浏览器打开exe文件
<win-r> regedit 打开注册表,然后自定义协议 自定义协议注册表.reg 打开后导入 Windows Registry Editor Version 5.00 [HKEY_CL ...
- redis(四)--简单实现Redis缓存中的排序功能
在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发的应 ...
- python全栈开发 * 23 面向对象 知识点汇总 * 180704
23 面向对象 -----特殊方法 1. isinstance(obj,类名) 判断对象是否是此类实例化或者此类的子类实例化出来的class A:passclass B(A):passb1=B()pr ...
- linux_vim_emmet插件的安装配置
首先要去如下网址下载一个安装包(英文基础好的同学可以去github上搜他的开源,写的更加详细) https://www.vim.org/scripts/script.php?script_id=298 ...
- 《Maven实战》文字版[PDF]
从亚马逊买的电子书,导出来的,需要的下吧. 下面是截图: 除了代码部分有一点点不清楚之外,其他还是蛮清楚的. 下载地址: http://download.csdn.net/download/apple ...
- spark组件笔记
SparkContext 中最重要的3个组建: 1 TaskScheduler (包含两个内容,TaskSchedulerImpl和SparkDeploySchedulerBackend)-用于向Ma ...
- css3 伸缩布局 display:flex等
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- spring拦截器-过滤器的区别
1. 理解 拦截器 :是在面向切面编程的时候,在你的 service 或者一个方法前调用一个方法,或者在方法后调用一个方法:比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业 ...
- 选择排序(Python实现)
目录 1. for版本--选择排序 2. while版本--选择排序 3.测试用例 4. 算法时间复杂度分析 1. for版本--选择排序 def select_sort_for(a_list): ' ...