一緒に書く習慣をつけましょう!「ナゲッツデイリーニュープラン・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…
この記事は学習とコミュニケーションのみを目的としています。侵入された場合は削除されます。 |