热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:python爬虫——对爬到的数据进行清洗的一些姿势

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python爬虫——对爬到的数据进行清洗的一些姿势相关的知识,希望对你有一定的参考价值。做爬虫,当然就要用数据。想拿

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python爬虫——对爬到的数据进行清洗的一些姿势相关的知识,希望对你有一定的参考价值。


  做爬虫,当然就要用数据。想拿数据进行分析,首先清洗数据。这个清洗数据包括清除无用数据列和维度,删除相同数据,对数据进行勘误之类的。

  从各大不同新闻网站可以爬到重复新闻。。。这个可以有。之前为了对爬到的新闻信息进行深度挖掘去了这个网站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


View Code

  统计频度函数:


技术分享技术分享

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


View Code

  余弦相似度函数:


技术分享技术分享

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


View Code

  查重函数:


技术分享技术分享

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


View Code

  然后新闻就成功去重了。

  爬新浪微博的数据,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鹿Ma><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/RK1sG4ma> ???


一看就知道这只是博客文章的入口。。。如果标题不对,想除杂就更麻烦了

技术分享技术分享

:【我校学子在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/Rol0sxXa> ???


详情的数据是否有用?要不要特意再写一次分析策略?

技术分享技术分享

:【我校学子在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/Rol0sxXa> ???


搜索结果收录了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> ???


要不要把地址也作为变量录入呢?

  上面的问题只是一部分。。。如果爬其他数据还会有更多的问题要考虑。有空再考虑一下清洗策略


推荐阅读
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • Explain如何助力SQL语句的优化及其分析方法
    本文介绍了Explain如何助力SQL语句的优化以及分析方法。Explain是一个数据库SQL语句的模拟器,通过对SQL语句的模拟返回一个性能分析表,从而帮助工程师了解程序运行缓慢的原因。文章还介绍了Explain运行方法以及如何分析Explain表格中各个字段的含义。MySQL 5.5开始支持Explain功能,但仅限于select语句,而MySQL 5.7逐渐支持对update、delete和insert语句的模拟和分析。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
author-avatar
CCTV2财经2677
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有