又快到了写论文的时间了,相信同学对获取数据都十分的头大,而要想能学会使用python或者第三方现成的采集器软件来采集想要的数据,这个学习成本也是不低,那么,拿来主义就是摆在很多同学面前最理想的追求了。

今天,小编就给大家带来一个Python通过移动端接口爬取的案例,同时用pyinstaller打包成exe,可以帮助大家用最简单的方式下载到微博的数据,大家如果有需要的可以免费下载使用。

下面我们来看看这个小工具如何使用?

gif动图 - 富泰科

这是博主:Vsinger_洛天依 的微博:

;

下图就是采集到的内容,导出到表格当中

我们可以看到数据字段非常的丰富,无论我们想要进行对这些数据进行什么维度的分析,都可以利用到。那么,这个小工具是如何使用呢?

下面我们看一下这个小工具如何下载:

我们可以看到数据就采集出来了,而且会同步下载到本地的表格当中。

是不是非常傻瓜,那么我们的同学们如果选题要用到微博的数据,有了这款小工具就可以节省很多采集数据的时间了。是不是非常nice?

我们下面详情说一下具体的思路:

首先我们知道:微博有很多不同的终端:如:www.weibo.com/www.weibo.cn/m.weibo.cn,分别对应不同的硬件终端,而我们爬取数据的都知道,获取数据最快的方式是通过网站的接口。这样不用浏览器的加载,那我们就按这个思路来找一下,是否有相应的接口:

我们打开weibo(我们通过https://m.weibo.cn/这个移动端访问),登录后,打开一个大v的首页 - 下拉 - 打开全部微博。按f12打开开发者工具。

;

然后我们通过网络调试,就可以看到相应的数据接口了。

;

然后我们看到,所有的数据都在这个mblog下,下面我们就可以写代码来获取了。

1、先获取用户的基本信息:

'''用户信息'''
user_name = card['mblog']['user']['screen_name']
profile_url = card['mblog']['user']['profile_url']
post_count = card['mblog']['user']['statuses_count']
desc = card['mblog']['user']['description']
fans = card['mblog']['user']['followers_count']
follow = card['mblog']['user']['follow_count']
gender = card['mblog']['user']['gender']
urank = card['mblog']['user']['urank']
mbrank = card['mblog']['user']['mbrank']
verified = card['mblog']['user']['verified']
if verified:verified = '认证会员'
else:verified = '非认证会员'

复制

这个container_id 就是用户的ID,相应的字段都是json格式,我们解析一下就可以。

2、再获取每一条微博:

for card in data['cards']:if card['card_type'] == 9:mid = card['mblog']['id']uid = card['mblog']['user']['id']bid = card['mblog']['bid']content = card['mblog']['text']content = re.sub(r'<.*?>', '', content)     # 通过正则过滤博文当中的html标签imageUrl = ''video_url = '-'try:for pic in card['mblog']['pics']:imageUrl += pic['url'] + ','imageUrl = imageUrl[:len(imageUrl) - 1]except KeyError as e:imageUrl = ''try:if card['mblog']['page_info']['type'] == 'video':video_url = card['mblog']['page_info']['media_info']['stream_url']except KeyError as e:video_url = '-'source = card['mblog']['source']scheme = 'https://weibo.com/{}/{}?filter=hot&root_comment_id=0&type=comment'.format(card['mblog']['user']['id'], card['mblog']['bid'])created_time = card['mblog']['created_at']

复制

3、然后我们再加一下翻页:

while True:url = f'https://m.weibo.cn/api/container/getIndex?containerid={container_id}&page={page_num}'page_num += 1

复制

update:微博好像更新了翻页的方式,新的翻页为一个动态参数,我们如下写一下就好了。

since_id = ''  # 翻页参数
while True:url = f'https://m.weibo.cn/api/container/getIndex?type=uid&value={profile_id}' \f'&containerid=107603{profile_id}&since_id={since_id}'

复制

然后设置一下结束翻页:

total_num = data['cardlistInfo']['total']
if page_num > int(total_num / 10):print('没有更多页了')break

复制

4、将获取的内容保存:

'''数据导出到表格当中'''
self.excel_save(file_name + '_微博博文.xlsx', items, self.head)

复制

5、当然,我们还需要对self.headers设置一下,这里的cookie需要将登录后的值复制过来。

self.headers = {'cookie': cookie,'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Mobile Safari/537.36 Edg/93.0.961.47'}

复制

6、然后,就可以运行一下代码了。

导出的数据表格:

调试好了,我们如果说想方便使用,可以使用pyinstaller打包一下。打包成exe,可以方便发送和携带。下载点这里

当然,这里有义务告知:以上工具下载的数据仅限于用于学习与研究使用,如有需要用于商业用途请取得相应权利人授权。请大家下载时视为同意这个要求,否则请勿下载。如果有超出以上规范或者将获取的数据应用于超过上述范围的,因此产生的后果由下载者负责,造成的可能的纠纷或法律后果与本号无关。

微博爬虫思路:Python通过移动端接口爬取,简单易操作相关推荐

  1. python爬取微博热搜显示到折线图_微博热搜榜前20信息数据爬取进行数据分析与可视化...

    一.设计方案 1.主题式网络爬虫名称:微博热搜榜前20信息数据爬取进行数据分析与可视化 2.爬取内容与数据特征分析:爬取微博热搜榜前20热搜事件.排名与热度,数据呈一定规律排序. 3.设计方案概述:思 ...

  2. python爬虫网络数据包_Python爬虫之多线程图虫网数据爬取(十六)

    Python爬虫之多线程图虫网数据爬取(十六) 发布时间:2019-05-14 10:11, 浏览次数:289 , 标签: Python 原创不易,转载前请注明博主的链接地址:Blessy_Zhu h ...

  3. Python爬虫实战使用scrapy与selenium来爬取数据

    系列文章目录 实战使用scrapy与selenium来爬取数据 文章目录 系列文章目录 前言 一.前期准备 二.思路与运行程序 1.思路 2.运行程序 三.代码 1.代码下载 2.部分代码 总结 前言 ...

  4. python爬虫--Scrapy框架--Scrapy+selenium实现动态爬取

    python爬虫–Scrapy框架–Scrapy+selenium实现动态爬取 前言 本文基于数据分析竞赛爬虫阶段,对使用scrapy + selenium进行政策文本爬虫进行记录.用于个人爬虫学习记 ...

  5. python爬取微博用户正文_基于Python的新浪微博用户信息爬取与分析

    基于 Python 的新浪微博用户信息爬取与分析 邓文萍 [摘 要] 摘要:本文设计并实现了一个微博用户信息爬取与分析系统 , 利用 Cookie 实现了用户的模拟登录 , 使用 Python 语言的 ...

  6. 教你用python实现34行代码爬取东方财富网信息,爬虫之路,永无止境!!

    教你用python实现34行代码爬取东方财富网信息,爬虫之路,永无止境!! 代码展示: 开发环境: windows10 python3.6 开发工具: pycharm weddriver 库: sel ...

  7. python网页爬虫漫画案例_Python爬虫-用Scrapy框架实现漫画的爬取

    14.jpg 在之前一篇抓取漫画图片的文章里,通过实现一个简单的Python程序,遍历所有漫画的url,对请求所返回的html源码进行正则表达式分析,来提取到需要的数据. 本篇文章,通过 scrapy ...

  8. Python网络爬虫数据采集实战:同花顺动态网页爬取

    前文的爬虫都建立在静态网页基础之上,首先通过请求网站url获取到网页源代码.之后对源代码进行信息提取进而存储即可,本文则针对动态网页进行数据采集,首先介绍Ajax相关理论,之后实战爬取同花顺动态网页, ...

  9. python爬虫今日头条_python爬虫—分析Ajax请求对json文件爬取今日头条街拍美图

    python爬虫-分析Ajax请求对json文件爬取今日头条街拍美图 前言 本次抓取目标是今日头条的街拍美图,爬取完成之后,将每组图片下载到本地并保存到不同文件夹下.下面通过抓取今日头条街拍美图讲解一 ...

  10. Python爬虫:最牛逼的 selenium爬取方式!

    Python爬虫:最牛逼的 selenium爬取方式! 作为一个男人 在最高光的时刻 这是小编准备的python爬虫学习资料,加群:700341555即可免费获取! Python爬虫:最牛逼的 sel ...

最新文章

  1. 提高电子商务转化率的关键因素
  2. django-allauth定制模板(转载)
  3. List对象集合通过对象属性进行查找
  4. 光伏机器人最前线_高工机器人走进光伏:数字化车间未来可期
  5. dsu on tree(Educational Codeforces Round 2: E. Lomsat gelral)
  6. [现代程序设计]homework-03
  7. MIPS指令集及汇编
  8. java tld 方法重载_java 中的TLD文件
  9. kubernetes 亲和、反亲和、污点、容忍
  10. 基础架构:一条sql语句是如何执行的?
  11. Avro RPC 之 Protocol 定义和代码生成
  12. 使用PCL库将KITTI数据集可视化
  13. 不会深度学习怎么写人脸识别
  14. java报表数据可视化
  15. Xilinx ISE中使用Synplify综合报错的原因
  16. 小程序源码:仿各大APP种树-多玩法安装简单
  17. PPTX机械危害预防手册(45页)(附下载)
  18. feign.codec.EncodeException: Could not write request: no suitable HttpMessageConverter found f
  19. unbuntu 云主机 远程部署系统
  20. 端口(port)和插口(socket)的区别

热门文章

  1. 博弈论分析题_“博弈论”习题和参考答案与解析
  2. 职场新人如何高效办公?这10款软件帮到你!
  3. 多格式无水印录屏软件
  4. 无线投屏视频经过服务器吗,无线投屏方案
  5. win10如何微信多开(无需工具)
  6. 面向边缘计算的资源优化技术研究进展
  7. 数学与逻辑思维(一)
  8. framework层Service的基础知识和常见问题
  9. 【超详细】Java实现学生信息管理系统
  10. 一名高校老师的观点:高考志愿该怎么填