PythonはChediの包括的な口コミデータを理解しています

一緒に書く習慣をつけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して5日目です。クリックしてイベントの詳細をご覧ください

この記事のすべてのチュートリアル、ソースコード、およびソフトウェアは、技術的な調査のみを目的としています。これは、コンピュータ情報システムの機能の削除、変更、追加、または干渉を伴うものではなく、コンピュータ情報システムの通常の動作に影響を与えるものでもありません。侵害や削除などの違法な目的でコードを使用しないでください。

PythonはChediの包括的な口コミデータを理解しています

必要

一連のChediモデル全体の包括的な口コミ統計を理解するここに画像の説明を挿入

動作環境

  • win10
  • Google nexus5x(ルート)
  • Python3.9
  • チャールズ

需要分析

まず、Webターミナルにアクセスして、必要なデータインターフェイスが見つかるかどうかを確認します。車種を見つけ、口コミページF12を開いてネットワークを表示します。ここに画像の説明を挿入このページのキーワード検索によると、明らかなデータはありません。インターフェイスを見つけることができますが、リクエストまたはセレンを使用してページ上で直接データを解析することもできると言われていますが、結局のところ、これは推奨されるソリューションではなく、APP分析から決定されます。PS:携帯電話環境とパケットキャプチャ環境の構成はここでは繰り返されません。興味がある場合は、前の記事APPキャプチャ環境の構成を参照してください。

Chedi APPをダウンロードして、携帯電話にインストールします。携帯画像の説明を追加してください電話でPosternを開き、PCでcharlesを開きます。

この時点で、パケットキャプチャ作業の準備が整い、APPを開いて、APPに入る車のモデルを見つけます。これは、ページ上のキーワードの波を検索ここに画像の説明を挿入する古い方法です。ここに画像の説明を挿入最後の2つのデータは明らかです。は不要で、最初の4つは同じインターフェイスです。返されるデータは必要なデータである必要があります。ダブルクリックして詳細データを表示します。

ここに画像の説明を挿入予備ビューはページデータと一致しています。データ構造と特定の値はページ内のデータと非常に似ています。Charlesインターフェースが小さすぎます。分析のためにデータをWebページにコピーしてください。これは分析に便利です。 。一般的なjsonデータオンライン分析Webサイトを共有します ここに画像の説明を挿入ページ上のデータを注意深く比較し、このインターフェイスが必要な包括的な口コミインターフェイスであることを確認します。

https://*******/get_detail/?series_id=4182&car_id=0&only_owner=0&year_id=all&iid=2467735824764398&device_id=40011211486215&ac=wifi&channel=dcd-yd-11zh-and-74&aid=36&app_name=automobile&version_code=693&version_name=6.9.3&device_platform=android&os=android&ab_client=a1%2Cc2%2Ce1%2Cf2%2Cg2%2Cf7&ab_group=3167590%2C3577236%2C3333988&ssmix=a&device_type=Nexus+5X&device_brand=google&language=zh&os_api=27&os_version=8.1.0&manifest_version_code=693&resolution=1080*1794&dpi=420&update_version_code=6931&_rticket=1648907286543&cdid=f3163204-7faf-45d7-89c4-e82215c3216c&city_name=%E8%81%8A%E5%9F%8E&gps_city_name=%E8%81%8A%E5%9F%8E&selected_city_name&rom_version=27&longi_lati_type=1&longi_lati_time=1648907102913&content_sort_mode=0&total_memory=1.77&cpu_name=Qualcomm+Technologies%2C+Inc+MSM8992&overall_score=4.873&cpu_score=4.8872&host_abi=
复制代码

正しい!あなたはその権利を読んでいます、それはとても長いです、データインターフェースを確認し、そしてこのURLをウェブページで直接リクエストしてください。ウェブ画像の説明を追加してくださいページのjson視覚化のためのプラグインをインストールすることをお勧めします。私はここで怠惰です、私はオンラインでjsonデータを解析しました、とCharlesによってキャプチャされたデータ同じです。分析後、series_idは車のシリーズのIDであることがわかります。このパラメータは変更できます。

すべての車両IDを取得する

車のIDの取得は非常に簡単です。最初にブランドIDを取得し、次にブランドIDに従って車のIDを要求します。これはポストインターフェイスであることに注意してください。

def get_series(self, brand_id):
    """
    获取品牌所有车系
    brand_id:品牌id
    """
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'}
    param = {
    'offset': 0,
    'limit': 1000,
    'is_refresh': 1,
    'city_name': '北京',
    'brand': brand_id
    }
    response = requests.post(url=url, data=param, headers=headers)
    rep_json = json.loads(response.text)
    # print(response.text)
    if rep_json['status'] == 'success':
    return rep_json['data']['series']
    else:
    raise Exception("get car series has exception!")
复制代码

画像の説明を追加してください

車シリーズの総合的な口コミスコアを取得する

    def get_score(self, series_id):
        """
        获取车系综合评分
        series_id: 车系id
        """
        response = self._parse_url(url).json()
        tag_list = response.get('data').get('tab_info').get('tag_list')
        data = list()
        # 优点
        merits = [i.get('tag_name')+"("+str(i.get('count'))+")" for i in tag_list if i.get('sentiment') == 1]
        data.append(merits)
        # 缺点
        defects = [i.get('tag_name')+"("+str(i.get('count'))+")" for i in tag_list if i.get('sentiment') == -1]
        data.append(defects)
        return data
复制代码

実行結果

ここに画像の説明を挿入 ここに画像の説明を挿入

ダウンロード

download.csdn.net/download/qq…


この記事は学習とコミュニケーションのみを目的としています。侵入された場合は削除されます。

おすすめ

転載: juejin.im/post/7082779776011730981