1. Python爬虫入门教程 爬取背景

2019年1月10日深夜,打开了百思不得姐APP,想了一下是否可以爬呢?不自觉的安装到了夜神模拟器里面。这个APP还是比较有名和有意思的。

下面是百思不得姐的简介

年度超好玩的搞笑内容平台,整个互联网能嗨翻宇宙的神级脑洞大神段子手们都在这..
新鲜的视频,爆笑的段子,有趣的GIF囧图,承包所有你无聊的时间。
更有“姐夫”们毁天灭地“神评论”,花式吐槽,脑洞大开,人人都是段子手……

1500W的下载量,用户群体比较庞大。

2. 爬虫的抓包分析阶段

安装到模拟器内部,打开Fiddler,运行程序,看下图,左侧最后出现的链接,就是我们想要的了

得到待爬取连接如下,所有的request请求,注意到,并没有什么加密参数

GET http://s.budejie.com/v2/topic/list/10/0-0/budejie-android-8.0.1/0-25.json?uid=&t=&market=360zhushou&client=android&appname=budejie&device=&jdk=1&ver=8.0.1&udid=&from=android HTTP/1.1

ver: 8.0.1

client: android

market: 360zhushou

udid: 866174010820641

mac: 9C:30:5B:38:35:2F

os: 4.4.2

appname: budejie

visiting:

Referer: http://www.budejie.com

t: 1547132330768

Host: s.budejie.com

Connection: Keep-Alive

Accept-Encoding: gzip

去掉无用参数, 得到如下链接

http://d.api.budejie.com/v2/topic/list/29/0-0/budejie-android-8.0.1/0-25.json

剩下的就是分析了

3. 分析页面规律,得到链接拼接方式

爬虫就是要找到链接的规律,下面是第一页和第二页的数据

http://d.api.budejie.com/v2/topic/list/29/0-0/budejie-android-8.0.1/0-25.json
http://d.api.budejie.com/v2/topic/list/29/29082060-28984879/budejie-android-8.0.1/1544334121-25.json

提取公用部分

http://d.api.budejie.com/v2/topic/list/29/{参数1}-{参数2}/budejie-android-8.0.1/{参数3}-25.json

三个参数位置发生了改变

还有两个数字,一个是29,这个目测应该是类别,一个是25,这个应该是每页显示的数据条数

那么我们看一下,第二个链接中参数1,2,3分别是怎么得到的就可以了,看一下第一页的返回数据

上图得到参数3的值

展开list看到第一项的id为29082060 OK,得到参数1的值了,最后一项肯定是参数2的值,那么我们找到对应参数之后剩下的就是编码了。

4. 爬虫具体编码部分

依旧是你自己来写吧~任何一个模块或者爬虫框架都是很容易就可以实现的,重要的是我们抓到了对应链接就可以了。

百思不得姐手机APP收工

Python爬虫入门教程 43-100 百思不得姐APP数据-手机APP爬虫部分的更多相关文章

  1. Python爬虫入门教程 48-100 使用mitmdump抓取手机惠农APP-手机APP爬虫部分

    1. 爬取前的分析 mitmdump是mitmproxy的命令行接口,比Fiddler.Charles等工具方便的地方是它可以对接Python脚本. 有了它我们可以不用手动截获和分析HTTP请求和响应 ...

  2. Python爬虫入门教程 42-100 爬取儿歌多多APP数据-手机APP爬虫部分

    1. 儿歌多多APP简单分析 今天是手机APP数据爬取的第一篇案例博客,我找到了一个儿歌多多APP,没有加固,没有加壳,没有加密参数,对新手来说,比较友好,咱就拿它练练手,熟悉一下Fiddler和夜神 ...

  3. Python爬虫入门教程 30-100 高考派大学数据抓取 scrapy

    1. 高考派大学数据----写在前面 终于写到了scrapy爬虫框架了,这个框架可以说是python爬虫框架里面出镜率最高的一个了,我们接下来重点研究一下它的使用规则. 安装过程自己百度一下,就能找到 ...

  4. Python爬虫入门教程 3-100 美空网数据爬取

    美空网数据----简介 从今天开始,我们尝试用2篇博客的内容量,搞定一个网站叫做"美空网"网址为:http://www.moko.cc/, 这个网站我分析了一下,我们要爬取的图片在 ...

  5. Python爬虫入门教程 31-100 36氪(36kr)数据抓取 scrapy

    1. 36氪(36kr)数据----写在前面 今天抓取一个新闻媒体,36kr的文章内容,也是为后面的数据分析做相应的准备的,预计在12月底,爬虫大概写到50篇案例的时刻,将会迎来一个新的内容,系统的数 ...

  6. Python爬虫入门教程 38-100 教育部高校名单数据爬虫 scrapy

    爬前叨叨 今天要爬取一下正规大学名单,这些名单是教育部公布具有招生资格的高校名单,除了这些学校以外,其他招生的单位,其所招学生的学籍.发放的毕业证书国家均不予承认,也就是俗称的野鸡大学! 网址是 ht ...

  7. Python爬虫入门教程石家庄链家租房数据抓取

    1. 写在前面 这篇博客爬取了链家网的租房信息,爬取到的数据在后面的博客中可以作为一些数据分析的素材.我们需要爬取的网址为:https://sjz.lianjia.com/zufang/ 2. 分析网 ...

  8. Python爬虫入门教程 22-100 CSDN学院课程数据抓取

    1. CSDN学院课程数据-写在前面 今天又要抓取一个网站了,选择恐惧症使得我不知道该拿谁下手,找来找去,算了,还是抓取CSDN学院吧,CSDN学院的网站为 https://edu.csdn.net/ ...

  9. Python爬虫入门教程 37-100 云沃客项目外包网数据爬虫 scrapy

    爬前叨叨 2019年开始了,今年计划写一整年的博客呢~,第一篇博客写一下 一个外包网站的爬虫,万一你从这个外包网站弄点外快呢,呵呵哒 数据分析 官方网址为 https://www.clouderwor ...

随机推荐

  1. 如何查看selenium的版本号

    方法一: 打开cmd,输入python >>> import selenium >>> help(selenium) Help on package seleniu ...

  2. engine_init_options.go

    package ) type {         options.PersistentStorageShards = defaultPersistentStorageShards     } }

  3. otter代码在IDEA远程DEBUG方法

    众所周知,Otter的代码打包后,是通过Jetty启动的,Otter代码的启动脚本中自带了开启Jetty远程DEBUG的脚本,所以我们只需要在启动Otter Manager和Otter Node的时候 ...

  4. BZOJ_1433_[ZJOI2009]假期的宿舍_二分图匹配

    BZOJ_1433_[ZJOI2009]假期的宿舍_二分图匹配 题意: 学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如A 和B都是学校的学生,A要回 ...

  5. laravel5.5解决小程序登陆态的问题

    修改一个文件 : vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php 找到getSession()方 ...

  6. 深入浅出java常量池

    理论 jvm虚拟内存分布:      程序计数器是jvm执行程序的流水线,存放一些跳转指令.      本地方法栈是jvm调用操作系统方法所使用的栈.      虚拟机栈是jvm执行java代码所使用 ...

  7. Android之微信朋友圈UI实现--ExpandableListView+GridView

    PS:我们都知道微信,更是知道朋友圈,很多人在朋友圈里卖起了化妆品,打入广告等为自己做一下推广,里面会附带一写好看的图片,上面有标题,有描述,整体布局每场的美观,那么这是怎么实现的呢,有些人可能会单个 ...

  8. Vue中引入bootstrap导致的CSS问题

    最近在进行vue.js+webpack进行模块化开发的时候,遇到一个奇怪的问题. 问题是这样的: 1. 在main.js文件中引入bootstrap的js和css. 2. 自己写了一个Header.v ...

  9. .net core 注入机制与Autofac

    本来是要先出注入机制再出 管道 的,哈哈哈……就是不按计划来…… 这里扯扯题外话:为什么要注入(DI,dependency-injection),而不用 new 对象? 可能我们都很清楚,new 对象 ...

  10. TIMO后台管理系统-基于SpringBoot开发

    项目介绍 TIMO后台管理系统,基于SpringBoot2.0 + Spring Data Jpa + Thymeleaf + Shiro 开发的后台管理系统,采用分模块的方式便于开发和维护,支持前后 ...