- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用 Python 自动抓取微博热搜,并定时发送至邮箱
进入微博热搜榜/top/summary后,全体页面如下:
可以看到,我们需要的热搜榜单信息在页面的正中心(总共50条热搜),这里我们需要爬取的信息有热搜标题、话题搜索量、以及话题指数。按F12进入网页源代码页面,点击element内容如下:
选中鼠标选项,点击你要爬取的信息,就可以看到对应的html源码。这里我们爬取的分为三个部分:标题、数量、指数、网址四个信息,而我们可以从网页源代码发觉如下规律:
信息
源代码规律
标题
标题
数量
数量
指数
指数
指数1
(.*?)
连接
标题
留意:这里之所以有指数和指数1源代码是由于前者猎取到的数据是有杂音的,所以需要再次用到指数1获得最终的信息。
之后我们运用requests包爬取网页源代码并通过re模块对爬取内容进行正则提取,由于每天仅执行一次,也就不用考虑恳求头什么的,Python代码如下:
import?requestsimport?reurl?=?/top/summary?cate=realtimehot?#微博网址ret?=?requests.get(url)test?=?ret.textu_href?=?.*?u_title?=?(.*?)u_amount?=?(.*?)u_category?=?(.*?)u_href?=?.*?title?=?re.findall(u_title,test)amount?=?re.findall(u_amount,test)category?=?re.findall(u_category,test)href?=?re.findall(u_href,test)
二、数据清洗
上面猎取到的title、amount、category、href四个目标是未经处理的话题、话题搜索量、话题指数、话题连接。接下来我们对其进行处理,先上代码
import?pandas?as?pdtitle?=?title[:-2]title?=?title[1:]href?=?href[:-2]href?=?href[1:]for?j?in?range(len(href)):????href[j]?=?/?+?href[j]while??in?amount:????amount.remove()for?i?in?range(len(category)):????if?category[i]?!=?:????????category[i]?=?re.findall((.*?),category[i])[0]????if?category[i]?==?:????????category[i]?=?空category?=?category[1:]while?荐?in?category:????category.remove(荐)df?=?pd.DataFrame()df[关键词]?=?titledf[amount]?=?amountdf[category]?=?categorydf[href]?=?hrefdf?=?df.sort_values(amount)df2?=?df[df[category]==爆]df3?=?df[df[category]==沸]df4?=?df[df[category]?==?热]df5?=?df[df[category]?==?新]df6?=?df[df[category]?==?空]df?=?pd.concat([df2,df3,df4,df5,df6],ignore_index?=?True)df.to_csv(微博热搜.csv,encoding?=?gbk)#输出为csv文本格式
下面对title进行处理,第一节爬取到的title是这样的,
总共只要50条热搜,怎样多出来3条?可以看到最终的两条是不需要的,所以用列表提取的方法提取前50行。还有一个元素多出来?就是我们的第一个元素,即是title[0],title[0]是没有序号与热搜搜索量的,如图:
“天问一号成功着陆”这一话题有指数无搜索量,是属于缺失数据,这里我们删除它,同样用到列表提取元素方法。
对href连接的处理与title的处理相同。
接着对搜索量做处理,接受了删除空格的语句。缘由是热搜榜中会消灭推举的话题,而推举的话题是没有搜索量的,故我们删除它。
最终轮到指数处理,先看未处理前的指数,
上面显而易见我们要提取的指数信息就在每个元素里面,同样利用re模块正则提取,提取出来后做三件事:
去除第一个元素(缘由已在title处理上讲解)
空字符串部分以中文空子代替
去除推举的话题
上面三步的代码已附上。代码里最终的步骤就是运用
您可能关注的文档
最近下载
- 颅内镜下肿瘤切除手术护理配合.pptx VIP
- 在线网课学习课堂《临床伦理与科研道德(山东大学)》单元测试考核答案.docx VIP
- 最高人民法院第二巡回法庭法官会议纪要合辑(详尽版).pdf VIP
- 加气混凝土砌块技术交底.docx VIP
- 写字教学讲座.pptx VIP
- 2025年厂内叉车安全使用管理规定3篇 .pdf VIP
- 《逻辑学》(第二版) 第5章 谓词逻辑的自然演绎系统:杜国平 - 复件.ppt VIP
- 17J610-1 特种门窗(一)参考图集.docx VIP
- 小学一年级10以内加减法口算题卡10套1000道(已打印).xls VIP
- 输变电工程环境保护和水土保持全过程管控培训课件.pptx VIP
文档评论(0)