python爬取热搜神器(可以查找关键字热搜or过去的热搜)

hello,因为老师给了任务,希望我们爬取一些微博上的数据,所以就想到了要爬取热搜,再根据热搜爬取评论。因为微博对过往的热搜不能根据时间进行搜索,因此这里笔者找到了一个微信公众号–热搜神器
点击历史热搜就可以看到之前某一天的热搜。但是好像要用积分兑换,我登录注册了一下用100积分换了七天能查阅的时间,所以就抓紧时间开始写这个博客啦~~
话不多说~我们开始吧

引入库

这里就不做介绍了,主要还是用requests库,还用到了正则表达式,xlwt等,都是比较基础的库

from datetime import datetime,timedelta
import re
import requests
import xlwt

设置headers

这里主要是cookie,和之前爬取微博一样需要登录信息,因为他是会员才能看历史热搜

cookie ='这里自己去找哟'
headers = {'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19041',"Cookie":cookie}

获取日期列表

这里其实是我从某个博主那里找的,但是他的不能爬到之前的内容,我相当于是对他的代码改了一下,但是我已经找不到他的博客在哪里了,麻烦作者如果看到了联系我一下~~感谢

def gen_dates(b_date, days):day = timedelta(days=1)for i in range(days):yield b_date + day*i
def get_date_list():#这里自己设置时间~因为我要爬的是今年的热搜所以就start = datetime.strptime("2019-12-31", "%Y-%m-%d").date()#.date()可以只截取日期end = datetime.strptime("2020-11-3", "%Y-%m-%d").date()datelist = []for d in gen_dates(start, (end-start).days):datelist.append(d)return datelist

获取热搜及其网址

因为下面爬取的网页其实是一个json网页,所以格式比较好解析,但是因为我太懒了所以就用了原作者的方式,没有用到json,用的是re去对爬到的数据做了一个处理,保存的东西我们也不太一样,所以做了一个改变。

#获取数据的文字部分(热搜词条)和链接(我只需要这两个)
def GetMiddleStr(final_set,content,time):try:wenzi = re.search('word":".*","url',str(content)).group(0).replace('word":"','').replace('","url','')url = re.search('"url":".*","count"',str(content)).group(0).replace('"url":"','').replace('","count"','')final_set.add((url,wenzi,time))except:return 0

存储到文件中

这个其实跟之前写的没什么区别,只不过是把我之前文章的list换成了set,因为之前爬热搜发现有的时候热搜有可能会重复,为了方便处理所以用了set

def export(result_set,date_str):excel = xlwt.Workbook(encoding="utf-8")sheet = excel.add_sheet("sheet1")sheet.write(0, 0, "网址")sheet.write(0, 1, "热搜")ex = 'D:/weibo/hot_past/'+date_str.replace('/','_')+'.xls'i = 0for t in result_set:sheet.write(i + 1, 0, t[0])sheet.write(i + 1, 1, t[1])i += 1excel.save(ex)

最后的main函数啦(这里有个非常要注意的地方,成败在此一举???)

函数别的地方没什么好说的,先贴代码再分析

def main():final_set = set()url = 'https://www.enlightent.cn/research/top/getWeiboHotSearchDayAggs.do'for i in range(len(get_date_list())):date_str = str(get_date_list()[i].year)+'/'+str(get_date_list()[i].month)+'/'+str(get_date_list()[i].day)print(date_str)data = {'type': 'realTimeHotSearchList','t': '嘤嘤嘤',#我可真厉害'accessToken':'就是这里,看这看这看这!!!!!!','date': date_str}r = requests.post(url, data=data, headers=headers)result = r.content.decode('utf-8')print(result)#获取到的字符串进行分片,此时result由一长串字符串变成列表result = result.split('},{')#去除首部两个字符以便后面的正则匹配result[0] = result[0].strip('[{')for j in range(len(result)):GetMiddleStr(final_set,result[j],date_str)export(final_set,date_str)final_set = set()if __name__ =="__main__":main()

不得不说还是谷歌浏览器比较香,之前用Edge,明明改了cookie但却还是不能爬历史的页面,但是google就可以!!!

注意右边的箭头!!!Edge出不来这个accessToken,所以总是不能成功!!
找了半天原因人都要崩溃了
原来在这里!!!
主要就是这样啦,这样就可以爬取成功了~
最后都把他保存下来就可以做进一步的处理操作了~

python爬取 过去的微博热搜(热搜神器)相关推荐

  1. python爬取天气与微博热搜自动发给微信好友

    python爬取天气与微博热搜自动发给微信好友 前言 系统环境 正文 爬取中国天气网 爬取微博热搜 微信自动发送消息 源代码 总结 github地址 前言 忙着毕设与打游戏之余,突然想着写个爬虫练练手 ...

  2. Python爬取南京地铁微博发布客流数据并进行分析

    Python爬取南京地铁微博发布客流数据并进行分析 之前在网上看到了分析北京地铁客流数据的开源项目,就想试着分析一下南京地铁的客流数据,可是找了很久没有找到可以获得南京地铁客流数据的接口,就去南京地铁 ...

  3. python网易云听歌时长_用Python爬取10w条网易云音乐热评并进行分析的方法总结

    有个段子讲"十年文案老司机,不如网易评论区,网易文豪遍地走,评论全部单身狗",网易云音乐的评论区也一直都是各类文案大神的聚集地. 那么我们普通用户到底如何成为网易云音乐评论里的热评 ...

  4. Python 爬取“工商秘密”微博后,我做了这个“可视化大屏”(附gif图)

    公众号后台回复"图书",了解更多号主新书内容 作者:卖山楂啦prss 来源:数据分析与统计学之美 前言 微博作为我的日常软件之一,平时除了看看热搜.肖战(哈哈),我还会时不时看看秘 ...

  5. python爬取某人所有微博_Python爬取博客的所有文章并存为带目录的word文档(实例67)

    看上博客上一个作者的文章,想一次性下载到一个word文件中,并且可以设置好目录,通过word的"导航窗格"快速定位单篇文章.一劳永逸,从此再也不用去博客上一篇一篇地翻阅了.整理一下 ...

  6. python爬取客流数据_Python爬取南京地铁微博发布客流数据并进行分析

    Python爬取南京地铁微博发布客流数据并进行分析 之前在网上看到了分析北京地铁客流数据的开源项目,就想试着分析一下南京地铁的客流数据,可是找了很久没有找到可以获得南京地铁客流数据的接口,就去南京地铁 ...

  7. 简单python爬取微博并写入excel

    ​ 写了一个简单的Python爬取指定用户微博的内容和图片,目前比较简陋,之前有在github上参考别人写的爬虫,发现现在微博好像使用的是Ajax的方式来渲染数据,这也太方便了,直接请求接口,然后解析 ...

  8. python爬取微博热搜榜

    python爬取微博热搜榜 最近应我大学室友得需求,做了一个简单的爬虫案例,先给大家看一下程序运行效果 接下来就是贴出代码了,在这里我会做一些简单说明,对如刚入门的同学可能会有所帮助,这里使用的是py ...

  9. python爬取微博热搜数据并保存!

    主要用到requests和bf4两个库将获得的信息保存在d://hotsearch.txt下importrequests;importbs4mylist=[]r=requests.get(ur- 很多 ...

最新文章

  1. PHP:第一章——PHP中的魔术常量
  2. access 打印预览 代码_PDFFactory pro虚拟打印机下载-PDFFactory官方版下载
  3. 【Java代码】未分页数据根据参数进行分页(粘贴可用)
  4. BZOJ-2298|区间dp|线段树
  5. SAP Spartacus organization unit里org list的focus实现问题
  6. cURL模拟POST方式提交数据
  7. gcc编译出现:error: dereferencing pointer to incomplete type
  8. java decompiler 3.11_Java反编译软件(DJ Java Decompiler)下载 v3.11.11.95官方版-第五资源...
  9. 深入解析oracle电子版,深入解析Oracle数据库
  10. 第188篇,想赚钱唯有只争朝夕(扶摇生财思维)
  11. Java实现对png图片文件电子签名操作
  12. Python 之 格式化输出
  13. 计算机软考落户广州,想要在2020年入户广州,考这个证就够了!
  14. watershed分水岭详解
  15. 这就是爱,说也说不清楚
  16. Budgie Desktop v8 发布,改进菜单和面板
  17. 人到中年再苦再难,也不要做这3种工作,余生漫长,越老越吃苦
  18. 收银软件超市通:如何把负库存清0,有库存的保持不变?
  19. 如何运用matlab给球面染上颜色,matlab画球体颜色如何选择
  20. 小游戏 搭建 投篮 --项目

热门文章

  1. 计算机cpu 2.5ghz,电脑CPU 2.5GHZ指的是主频的速度吗,肿么判断CPU的好坏
  2. ThreadLocal 简单了解
  3. 英语日常短语积累(4)—银行考试真题
  4. 语义分析- C-- 语言
  5. 十六、基于FPGA的CRC校验设计实现
  6. 卷积神经网络初步(零):从原始汤到细胞
  7. QQ音乐做直播:与秀场无关,对数字音乐产业有何影响?
  8. 手写webserver服务器
  9. 幼儿园监控_透明装饰_安全工地_放心食堂_多媒体教室基于视频流媒体能力解决方案
  10. 怎么写小说?做好这4步,你也能开始写小说 | Effie经验分享