版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Yk_0311/article/details/82824505
1.安装好Fiddler
下载链接:https://www.telerik.com/fiddler
2.手机APP抓包设置
3.安全证书的设置
第二,第三步参考链接:https://blog.csdn.net/c406495762/article/details/76850843
里面是关于安卓的设置
下面是关于ios的
首先要把Fiddler打开并且按照以上的步骤设置好
然后在手机上打开safari输入(自己的ip地址:8888)出现
点击FiddlerRoot cerrificate 按步骤按照信任证书
最后在设置–通用–关于本机–证书信任设置中打开
4.打开掌上英雄联盟
点击商城–英雄页面
为了在Fiddler中更好的展示,点击排序–上架日期 从晚到早
然后玩下滑,将所有英雄都加载出来
打开Fiddler你可以看到
可以看到抓到的包,get请求,url地址,还有返回的JSON格式的信息
返回的信息中包含了图片的地址,名称
图中蓝字的信息,其实就是将url中page更改了,分别访问就可以得到所有信息了
5.代码
import requests
import os
def get_HTML(page):
url = 'http://apps.game.qq.com/daoju/go/zmgoods/list?plat=ios&version=9822&cat=16&orderby=dtBegin&order=asc&page={}&pagesize=20'.format(
page)
headers = {'User-Agent': 'qtl 7.0.1 (iPhone; iOS 10.3.3; zh_CN)',
'Host': 'apps.game.qq.com',
'Connection': 'keep - alive'}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
r.encoding = r.apparent_encoding
# print(r.json())
# print(r.text)
return r.json()
except:
print('11111')
def parse_json(json):
items = json.get('data').get('goods') # 返回的是一个列表
for item in items:
name = item['sGoodsName'] # 获取了名称
imageurl = item['sGoodsPic'] # 获取了图片的链接
# print(name, imageurl)
yield name, imageurl
def saveimages(name, imageurl): # 保存图片
headers = {'User-Agent': 'Mozilla/5.0'}
root = 'D://IDE//Pycharm//《网络爬虫实战开发》//手机App的抓取//images'
if not os.path.exists(root): # 如果根目录不存在就创建一个
os.mkdir(root)
path = root + '//' + name + '.jpg' # 图片路径
# try:
if not os.path.exists(path):
r = requests.get(imageurl, headers=headers, verify=False) # 程序忽略SSL证书验证错误 如果没有CA认证的网站用requests访问的时候,会报出SSLerror
r.raise_for_status()
with open(path, 'wb') as f:
f.write(r.content)
# except:
# print('2222')
if __name__ == '__main__':
for page in range(1, 9):
a = get_HTML(page)
for name, imageurl in parse_json(a):
saveimages(name, imageurl)
6.总结
第一还是要配置好Fiddler
第二抓取APP的内容是和爬网页是差不多的,最重要的还是抓取包,分析其中的内容