商务服务
使用python抓取App数据
2024-12-16 09:49

App接口爬取数据过程
使用抓包工具
手机使用代理,app所有请求通过抓包工具
获得接口,分析接口
反编译apk获取key
突破反爬限制
需要的工具:
夜神模拟器
Fiddler
Pycharm
实现过程
首先下载夜神模拟器模拟手机也可以用真机,然后下载Fiddler抓取手机APP数据包,分析接口完成以后使用Python实现爬虫程序

使用python抓取App数据

Fiddler安装配置过程
第一步:下载神器Fiddler
Fiddler下载完成之后,傻瓜式的安装一下!

记住这个端口号是:8888

第一步:下载安装

夜神模拟器下载完成之后,傻瓜式的安装一下!

第二步:配置桥接 实现互通

首先将当前手机网络桥接到本电脑网络 实现互通 

安装完成桥接驱动后配置IP地址,要配成和本机互通的网段,配置完成后打开主机cmd终端ping通ok

第三步:配置代理
    1. 打开主机cmd 
  • 部分python代码分享:

    import requests
    import city
    import json
    import jsonpath
    import re

    city_list = city.jsons
    tags_list = city.Tag

    def city_func(city_id):
    try:
    city = jsonpath.jsonpath(city_list, '$..sub[?(@.code=={})]'.format(int(city_id)))[0]["name"]
    except:
    city = jsonpath.jsonpath(city_list, '$[?(@.code=={})]'.format(int(city_id)))[0]["name"]
    return city

    def tags_func(tags_id):
    tags_join = []
    if tags_id:
    for tags in tags_id:
    t = jsonpath.jsonpath(tags_list,'$..spotFilterTags[?(@.id=={})]'.format(int(tags)))
    tags_join.append(t[0]["title"])

    return ('-'.join(tags_join))

    def split_n(ags):
    return re.sub(' ',' ',ags)


    def request(page):
    print('开始下载第%d页'%page)
    url = 'https://app-api.chargerlink.com/spot/searchSpot'
    two_url = "https://app-api.chargerlink.com/spot/getSpotDetail?spotId={d}"
    head = {
    "device": "client=android&cityName=%E5%8C%97%E4%BA%AC%E5%B8%82&cityCode=110106&lng=116.32154281224254&device_id=8A261C9D60ACEBDED7CD3706C92DD68E&ver=3.7.7&lat=39.895024107858724&network=WIFI&os_version=19",
    "appId": "20171010",
    "timestamp": "1532342711477",
    "signature": "36daaa33e7b0d5d29ac9c64a2ce6c4cf",
    "forcecheck": "1",
    "Content-Type": "application/x-www-form-urlencoded",
    "Content-Length": "68",
    "Host": "app-api.chargerlink.com",
    "Connection": "Keep-Alive",
    "User-Agent": "okhttp/3.2.0"
    }


    data = {
    "userFilter[operateType]": 2,
    "cityCode": 110000,
    "sort": 1,
    "page": page,
    "limit": 10,
    }

    response = requests.post(url,data=data,headers=head)
    #获取数据
    data = response.json()
    for i in data['data']:
    c = []
    id = i['id']
    name = i["name"] #充电桩名
    phone = i["phone"] #手机号
    num = i['quantity'] #有几个充电桩
    city = city_func(i["provinceCode"]) #城市
    tags =tags_func(i["tags"].split(','))#标签
    message = c + [id,name,phone,num,city,tags]
    parse_info(two_url.format(d=id),message)

    def parse_info(url,message):

    #打开文件
    with open('car.csv','a',encoding='utf-8')as c:
    head = {
    "device": "client=android&cityName=&cityCode=&lng=116.32154281224254&device_id=8A261C9D60ACEBDED7CD3706C92DD68E&ver=3.7.7&lat=39.895024107858724&network=WIFI&os_version=19",
    "TOKEN": "036c8e24266c9089db50899287a99e65dc3bf95f",
    "appId": "20171010",
    "timestamp": "1532357165598",
    "signature": "734ecec249f86193d6e54449ec5e8ff6",
    "forcecheck": "1",
    "Host": "app-api.chargerlink.com",
    "Connection": "Keep-Alive",
    "User-Agent": "okhttp/3.2.0",
    }
    #发起详情请求
    res = requests.get(url,headers=head)
    price = split_n(jsonpath.jsonpath(json.loads(res.text),'$..chargingFeeDesc')[0]) #价钱
    payType = jsonpath.jsonpath(json.loads(res.text),'$..payTypeDesc')[0] #支付方式
    businessTime =split_n(jsonpath.jsonpath(json.loads(res.text),'$..businessTime')[0]) #营业时间
    result = (message + [price,payType,businessTime])
    r = ','.join([str(i) for i in result])+', '
    c.write(r)

    def get_page():
    url = 'https://app-api.chargerlink.com/spot/searchSpot'
    head = {
    "device": "client=android&cityName=%E5%8C%97%E4%BA%AC%E5%B8%82&cityCode=110106&lng=116.32154281224254&device_id=8A261C9D60ACEBDED7CD3706C92DD68E&ver=3.7.7&lat=39.895024107858724&network=WIFI&os_version=19",
    "appId": "20171010",
    "timestamp": "1532342711477",
    "signature": "36daaa33e7b0d5d29ac9c64a2ce6c4cf",
    "forcecheck": "1",
    "Content-Type": "application/x-www-form-urlencoded",
    "Content-Length": "68",
    "Host": "app-api.chargerlink.com",
    "Connection": "Keep-Alive",
    "User-Agent": "okhttp/3.2.0"
    }

        以上就是本篇文章【使用python抓取App数据】的全部内容了,欢迎阅览 ! 文章地址:http://www78564.xrbh.cn/news/30310.html 
         文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 迅博思语移动站 http://www78564.xrbh.cn/mobile/ , 查看更多   
  • 最新文章
    哈尔滨威尔特制衣厂
    我是哈尔滨威尔特制衣厂的肖庭波,联系地址是哈尔滨服装城附近哈西商厦,我们公司是在黑龙江哈尔滨的个体私营公司,公司专注于服装
    节到张家界武陵源必去地
    节到张家界武陵源必去地长假想找个地方玩玩?张家界武陵源绝对是个好选取,这里风景绝美空气清新关键是人虽然多,但美景还是能让
    超节点成WAIC焦点 未来国产GPU替代率或超80%
    在人工智能产业蓬勃发展的当下,算力作为其核心驱动力,重要性不言而喻。然而,国产算力在前进的道路上却面临着诸多阻碍,发展现
    原创樊振东上新闻联播了!加盟德甲真相曝光,背后战略价值惊人
    央视《新闻联播》在体育强国专题报道中播放了网球选手郑钦文和乒乓球运动员樊振东的画面。 整个乒乓球项目只出现了樊振东一人,
    山姆上新「周黑鸭风味鸭肉酱」,瑞幸推出乳酸菌美式和乳酸菌冰茶...|一周热闻
    新产品1、20年来最大创新!百事在北美推出益生元可乐2、特别添加专利乳酸菌!瑞幸上新「乳酸菌美式」和「乳酸菌冰茶」3、美容成
    多款新车与全域AI技术惊艳WAIC,吉利智能科技进入爆发期
    原创|Jaden  编辑|Cong在正在举办的2025世界人工智能大会(WAIC 2025)上,集团携阶跃星辰联合参展,9X、10EM-P、A7和吉利银
    云南施甸县:“善洲青苗课堂”守护青少年健康成长
    中国青年报客户端讯(中青报·中青网记者 张文凌)今年暑假,共青团云南保山市施甸县委依托“返家乡”“三下乡”社会实践大学生
    一年60万赴美留学值吗?这届留学生开始找“平替”
    21世纪经济报道记者陈洁 实习生张星雨 广州、重庆报道从7月中旬开始,多省份陆续公布本科普通批,高校录取工作逐步推进。然而,
    惠民贷延期还款会影响分期吗?2025最新解析指南,必看避坑省钱秘籍!
    惠民贷延期还款会影响分期吗?2025最新解析指南,必看避坑省钱秘籍!惠民贷推迟还款是许多人应急时的救命稻草,但推迟会不会作用
    舟山进口茶叶中文标签备案
    ,公司自有进出口权,酒类商品批发许可证、食品流通许可证、中国食品土畜牧进出口商会会员证、对外贸易经营者备案登记证、自理报