爬取手机app实例:fiddler抓包爬取汽车之家

配置爬取app的东西看此博客

首先手机设置代理,我设置的是手动代理,然后把端口名写为8888和主机名是Ipv4的地址,电脑上的fiddler也设置好就可以开始抓包了

连接好以后,手机打开汽车之家app,点击二手车车源,fiddler抓到包如图(记得要先点一下那个黄条对数据进行解压)
在这里插入图片描述
然后发现手机端的这个数据的结构是及其的简单清晰。
请求头用手机的请求头,然后就可以爬取了

import requests
from lxml import etree
import pandas as pd
import csv
import os

def get_html(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Linux; Android 9; ONEPLUS A6000 Build/PKQ1.180716.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 autohomeapp/1.1+%28auto_android%3B9.9.3%3BT1sFhhD74d5Lzdqfy68A54uWVQQFg-_zy6ygMUcD9mIqrPuMbFuGWA%3B9%3BONEPLUS%2BA6000%3B4e9165e6a117c54ba41734298ae9b5ae%29 auto_android/9.9.3 nettype/wifi',
    }
    try:
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return response.content.decode()
        else:
            print('1')
            return None
    except:
        print('2')
        return None

def get_info(html):
    selector = etree.HTML(html)
    a_list = selector.xpath('//li/a')
    info_list = list()
    for a in a_list:
        try:
            title = a.xpath('h3/text()')[0]
            where = a.xpath('p/text()')[0].strip().split('/')[0]
            gone = a.xpath('p/text()')[0].strip().split('/')[1]
            release_time = a.xpath('p/text()')[0].strip().split('/')[2]
            infos = a.xpath('ins//text()')
            price = infos[0] + infos[1]
            infos[:2] = []#对列表前两个元素进行删除    
            advantage = ','.join(infos) if len(infos) != 0 else '无'
            list_one = [title, price, where, gone, release_time, advantage]
            print(list_one)
            info_list.append(list_one)
        except:
            pass
    write_file(info_list)

def write_file(info_list):
    file_size = os.path.getsize('D:/汽车之家2.csv')
    if file_size == 0:
        first = ['车名', '价格', '所在地', '已走路程', '购买年份', '好处']
        writer = pd.DataFrame(columns=first, data=info_list)
        writer.to_csv('D:/汽车之家2.csv', encoding='utf-8',index=False)
    else:
        with open('D:/汽车之家2.csv', 'a+', encoding='utf-8', newline='') as fp:
            writer = csv.writer(fp)
            writer.writerows(info_list)

if __name__ == '__main__':
    urls = ['https://m.che168.com/app/quanguo/list/?sourcename=mainapp&safe={}&pvareaid=106365'.format(i) for i in range(1,21)]
    for url in urls:
        html = get_html(url)
        get_info(html)
        

最后结果
在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fiddler是一个强大的网络调试工具,特别适合Windows平台,常用于抓取和分析HTTP/HTTPS数据包。如果你想要在手机上使用类似功能并进行实战,通常会涉及到以下步骤: 1. **Fiddler代理设置**:首先,你需要在电脑上安装Fiddler,并将其设置为全局HTTP和HTTPS代理。这样,手机通过网络请求的数据会经过电脑,便于抓包。 2. **手机应用支持**:不是所有手机App都能直接支持Fiddler抓包,对于Android设备,可能需要使用如 Charles 或mitmproxy这样的代理工具;对于iOS设备,你可能需要使用Paw或者Charles(通过USB连接)。 3. **证书管理**:为了让手机信任电脑作为代理,你可能需要在Fiddler中创建或导入自签名的SSL证书。 4. **手机配置**:在手机的开发者选项或网络设置中,允许应用访问USB调试模式(仅限Android)或连接到特定的Wi-Fi网络(如Charles提供的)。 5. **实际抓包**:开始使用Fiddler或选择的工具捕获流量,观察手机发出的请求和接收到的响应,你可以查看请求头、请求体、响应头和响应体等信息,这对于诊断网络问题、调试API交互或测试安全漏洞非常有用。 6. **模拟数据或修改请求**:如果需要,你可以修改或模拟返回的响应,进行测试或者研究App的行为。 相关问题: 1. Fiddler如何设置为手机的代理? 2. 对于不支持直接抓包App,有哪些替代方案? 3. 在iOS设备上如何通过Fiddler进行抓包

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值