项目背景

大家对于网页的数据爬虫了解的已经很多了,这次爬取APP端的数据。之前我也讲解过APP爬虫,但是没有讲解过Fiddler的配置和使用。这次以微博榜单为案例,介绍APP爬虫流程和数据的可视化(数据为2019年2月28号采集)。整个项目流程如下图所示:

环境配置

首先,在网上下载Fiddler软件,这个和普通的软件安装一样,这里就不详细讲解了。

接着,我们打开Fiddler软件,进行配置,打开tools-options,进行如下的设置。

选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求;

选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来。

设置完记得重启软件~

为了让Fiddler截取手机的包,需要让手机和电脑在同一个ip下,在电脑端的cmd中输入:ipconfig,获取电脑ip地址。

接着打开手机(以IPhone为例),打开wifi,配置代理,这里的代理就是上图我们查询的ip地址,8888为端口号。

最后,在手机浏览器输入http://192.168.0.144:8888,点击下载证书,IPhone最后还需要在设置中信任证书,这样就可以用Fiddler抓取手机的包啦。

找包

我们打开Fiddler找包,发现这是一个POST请求,下面就是请求的参数,max_id改变就是换页。

爬虫代码

这样,我们就可以写出完整代码了。

importrequests

importjson

importcsv

importtime

fp=open('weibo.csv','w',newline='',encoding='utf-8')

writer=csv.writer(fp)

writer.writerow(['user','location','gender','followers','text','created_time','comments','good'])

url='https://api.weibo.cn/2/statuses/unread_hot_timeline?gsid=_2A25xXl6mDeRxGeNM41oV-S_MzDSIHXVQStVurDV6PUJbkdANLVTwkWpNSf8_0kSaOWZtWP9k_mbYuGWoJ6k7Z2E_&sensors_mark=0&wm=3333_2001&i=b9f7194&sensors_is_first_day=false&from=1092093010&b=0&c=iphone&networktype=wifi&skin=default&v_p=71&s=a8064444&v_f=1&sensors_device_id=1962A632-B40D-4337-A4C6-3F9AB979B517&lang=zh_CN&sflag=1&ua=iPhone8,1__weibo__9.2.0__iphone__os12.1.4&ft=11&aid=01AuxGxLabPA7Vzz8ZXBUpkeJqWbJ1woycR3lFBdLhoxgQC1I.&cum=21171544'

headers={

'Host':'api.weibo.cn',

'Content-Type':'application/x-www-form-urlencoded; charset=utf-8',

'User-Agent':'Weibo/29278 (iPhone; iOS 11.4.1; Scale/2.00)'

}

params=['refresh=loadmore&group_id=1028038999&extparam=discover%7Cnew_feed&fid=102803_ctg1_8999_-_ctg1_8999_home&uicode=10000495&count=25&trim_level=1&max_id={}&trim_page_recom=0&containerid=102803_ctg1_8999_-_ctg1_8999_home&fromlog=1028038999&uid=5288491078&refresh_sourceid=10000365&featurecode=10000001&lastAdInterval=-1&need_jump_scheme=1'.format(str(i))foriinrange(1,16)]

forparaminparams:

res=requests.post(url,headers=headers,data=param)

json_data=json.loads(res.text)

statuses=json_data['statuses']

forstatuseinstatuses:

user=statuse['user']['name']

location=statuse['user']['location']

gender=statuse['user']['gender']

followers=statuse['user']['followers_count']

text=statuse['text']

created_time=statuse['created_at']

comments=statuse['comments_count']

good=statuse['attitudes_count']

print(user,location,gender,followers,text,created_time,comments,good)

writer.writerow([user,location,gender,followers,text,created_time,comments,good])

time.sleep(2)

榜单分析

上榜明星,通过对用户昵称计数,看看哪些用户上榜最多。上榜的大多是明星和娱乐号主。

地区分布,上榜的地区分布,可以看出大部分都来自北上广,然后海外用户也是有很多的(有些明星是外籍)。

性别分布,男性和女性分布较平均,男性更多一些~

榜单发布时间和词云图,可以看出,晚上8点是个高峰期,这个点刚好下班吃瓜。

今日互动

代码下载:https://github.com/panluoluo/crawler-analysis,下载完整代码。

留言打卡:现在小鲜肉当道,说说你最喜欢的老戏骨是哪个。公众号后台回复【打卡】,加入打卡学习群,2019年一起搞事情。

python 有趣的爬虫_Python有趣|微博榜单爬虫,尽知天下事相关推荐

  1. 爬取某小说榜单爬虫及可视化分析

    爬取某小说榜单爬虫及可视化分析(仅用于学习) gitee代码链接:https://gitee.com/huang_jia_son/duoduo.git 介绍 GUI界面+python爬虫+数据清洗与处 ...

  2. Redis数据结构Set应用场景--黑名单校验器、京东与支付宝抽奖、微博榜单与QQ群的随机展示、帖子点赞、关注与粉丝、微关系计算、HyperLogLog的入门使用

    Set应用场景 set命令使用 淘宝黑名单 一.黑名单过滤器业务场景分析 二 .解决的技术方案 三.SpringBoot+redis模仿实现校验器 京东京豆抽奖 一.京东京豆抽奖的业务场景分析 二.京 ...

  3. 【Python爬虫】猫眼电影榜单Top100

    这是一个入门级的Python爬虫,结构易于理解.本文对编写此爬虫的全过程进行了讲述.希望对大家的Python爬虫学习有所帮助. 一.目标 爬取猫眼电影榜单Top100,将数据存入Excel文件中,并利 ...

  4. Python爬虫:想听榜单歌曲?使用BeautifulSoup库只需要14行代码即可搞定

    目录 BeautifulSoup库 安装BeautifulSoup库 BeautifulSoup库简介 选择解释器 基础用法 节点选择器 获取节点名称属性内容 获取所有子节点 获取所有子孙节点 父节点 ...

  5. 豆瓣电影:TOP250榜单爬虫

    豆瓣电影 Top 250 (douban.com) #导包 import requests from bs4 import BeautifulSoup import pandas as pd 第一步: ...

  6. python 文本分析库_Python有趣|中文文本情感分析

    前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...

  7. python有趣的案例_Python有趣的小案例

    # 所需依赖:python3 pycharm # print 打印 print('hello world!') # 注释符号 # 井号后面灰色的内容是注释,相当于笔记,会被机器忽略 # 变量和值 # ...

  8. python情感分析中文_Python有趣|中文文本情感分析

    前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...

  9. python中文文本分析_Python有趣|中文文本情感分析

    前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...

最新文章

  1. linux安装成桌面
  2. 基于8086CPU微处理器的汇编学习之PUSH、POP指令
  3. 中国水处理行业十四五趋势规划与布局动态分析报告2022年
  4. Android 博客园客户端 (八) 下拉刷新、分页,AsyncTask
  5. 华为手机如何升级鸿蒙系统_华为手机怎么升级鸿蒙系统?答案来了
  6. 修改PostgreSQL数据库的默认用户postgres的密码
  7. winformlabel自动换行
  8. 一起撸过游戏的下铺兄弟,你还在玩游戏吗
  9. 从CentOS官网下载系统镜像详细教程
  10. idea properties中文乱码uncode转中文
  11. 矩阵行列式的计算及逆矩阵转换
  12. 这就是你日日夜夜想要的docker!!!---------Docker常规操作--端口映射、数据卷管理 以及容器互联
  13. 论文详解EnlightenGAN: Deep Light Enhancement Without Paired Supervision
  14. 用户日活月活怎么统计 - Redis HyperLogLog 详解
  15. html 字母全部大写,HTML文本框录入字母自动大写问题解决方法
  16. 改进YOLOv7系列:首发结合最新Transformer视觉模型MOAT结构:交替移动卷积和注意力带来强大的Transformer视觉模型,超强的提升
  17. Java设计模式(疯狂Java联盟版)
  18. 数据库 数据仓库 数据集市的区别
  19. linux+磁带机检查,Redhat Enterprise Linux磁带机简单操作方法
  20. Linux花开五洲,争奇斗艳

热门文章

  1. python 实现SOM:代码注释与应用示例
  2. 在pytorch中expand_dim
  3. 《深入剖析Tomcat》源码
  4. git 如何关联多个库
  5. MVC 5 + EF6 入门完整教程14 -- 动态生成面包屑导航
  6. 步步为营-92-空格变成问号的怪问题
  7. Win10 UWP系列:关于错误 0x80073CF9及一个小bug的解决
  8. 人生五大投资,你投对了几个?
  9. Welcome to NHibernate
  10. 2003下使用IIS+PHP+MySQL来运行DZ(落伍记号)