## 前言:这个post,博主会分享一些关于app爬虫的内容。爬虫的步骤一般为抓包(获取规则)和爬取(根据规则,自动获取对应信息)。上个post已经分享环境的搭建,这个post博主根据一个实例对app爬虫进行详细讲解。
## 注意事项:众所周知,爬虫是一项敏感的技术。所以,在学习之前我们必须知道哪些行为是违法的。这里博主总结了四点不能干:
### 1. 不能爬取用户信息
### 2. 不能爬取非公开的隐藏信息
### 3. 不能直接商用爬取的信息
### 4. 不能干扰app或者网站的正常运行
## 搭建环境:
### 1. 操作系统: Windows 8.1
### 2. 抓包工具:fiddler
### 3. 安卓手机模拟器:夜神模拟器6.2.7.0(有版本要求)
### 4. 实例app:盈球大师
### 5. Pycharm for mac
** 所有用到的软件都可以在下载专页中下载哦
## 需求:
假设我们要对盈球大师app中所有的足球的数据进行分析。如果我们自己打开app查看,然后自己归纳进excel也是可行的。但是,这将会消耗大量的时间,特别在足球数据非常多的情况下。更糟糕的是,随着数据的更新,我们需要不断地重复这个过程。所以,我们需要用爬虫代替我们进行数据的采集。而且,爬虫还能对数据很好地进行后续处理。
### 1. 打开fiddler。同时,在夜神模拟器下进入盈球大师app,进入如下页面,获取足球的比赛总数和比赛队伍的简单信息。
### 2. 在fiddler中找到对应的包(离你打开页面时最近的那个包),进行规则分析,并找到如下内容:
#### 发送请求的url
#### 发送请求的json参数
#### 找到返回包中返回的总数,然后根据总数再遍历出所有的比赛ID和相关信息
### 3. 针对规则来写python抓取的代码
// 引入对应的包 import json import queue import requests import re import csv import codecs // 获取比赛总数 url = 'http://sport.ttyingqiu.com/sportdata/f?agentId=2335083&platform=android&appVersion=6.0.0' headers = {'Content-Type': 'application/json'} d = json.dumps({"verifyStr": "", "apiName": "getMatchListByDate", "pageNo": 1, "simple": 1, "pageSize": 20, "oddsCompany": 0, "game": 0}) response = requests.post(url, headers=headers, data=d) result = response.text totalcount = re.findall(r'"totalCount":(.*?),', result) //通过正则获得比赛总数 // 获取全部比赛的ID和简单比赛信息 d = json.dumps({"verifyStr": "", "apiName": "getMatchListByDate", "pageNo": 1, "simple": 1, "pageSize": totalcount[0], "oddsCompany": 0, "game": 0}) response = requests.post(url, headers=headers, data=d) result = response.text matchIds = re.findall(r'"matchId":(.*?),', result) //全部比赛IDs oddsAsias = re.findall(r'"oddsAsia":"(.*?);(.*?);', result) //对应的比分预测
### 4. 接下来我们想获取每个比赛的详细数据分析, 如下所示:
#### 基本思路:我们找到对应的包。然后分析所需的发送链接和获取时需要用到的规则。接着,根据我们在前面步骤获得的IDs,遍历地获取出所有的信息。最后,我们便可以把获取出来的所有信息都制成一个excel表格。
#### 好处:通过这个python的爬虫,我们可以随时在极短时间内获得所有的比赛信息。并可以对这些比赛信息进行后续的算法分析,从而得到比赛的预测结果。
#### 所有的代码(包括后续的代码和前面给出的代码)可以在下面的下载链接,或者下载专页打赏下载哦。您的支持是对我最大的鼓励。
## 实现效果展示(如果清晰度不够,请移步bilibili观看哦。)