爬虫類ビブラートインターフェイスCSSの暗号解読


インポート
インポート要求 から lxmlのインポートetree から fontTools.ttLib インポートTTFontの ローカルから読み込むフォントファイル ttfond = TTFont(" iconfont_9eb9a50.woff " DEF ()get_cmap_dict: "" " リターン:リレーショナルマッピングテーブル 。" "" から[ローカルマッピングテーブルとの間の関係は、サイトWOFFダウンロードしたフォントファイルから読み込まれる] best_cmap ttfond = [ CMapの] .getBestCmap() 円形の関係マッピングテーブル番号進交換 best_cmap_dictを= {} のためのキー、値 best_cmap。アイテム(): best_cmap_dict [六角(キー)] = プリント(16進数)(キー、値) のリターン best_cmap_dict 'NUM_1'、 '0xe604': 'NUM_2'、 '0xe605': 'num_3' DEF get_num_cmap(): ""」 :リターン:返回NUM和真正的数字映射关系 ""」 num_map = { " X """ " num_ ":1、" NUM_1 " :0、 " NUM_2 ":3 " num_3 "2、" num_4 ":4" num_5 ":5、" num_6 ":6、" num_7 ":9 " num_8 ":7、" num_9 ":8 } 戻りnum_map DEF map_cmap_num(get_cmap_dict、get_num_cmap): new_cmap = {} のためのキー、値get_cmap_dict()の項目(): キー = re.sub(" 0 "" &#"キー、カウント= 1)+ " ; #のソースコード形式&#のxe606; new_cmap [キー] = get_num_cmap()[値] 代替フォーマット '&#1 xe602;': 'xe603&#;' 1 ,: 0、「&#1 xe604。 ; ':3、。' &#のxe605; ':2、 返すnew_cmap #をWebページのソースを取得し、 DEF (URL)をget_html: ヘッダ = { ' User--エージェント'' Mozillaの/ 5.0(Windows NTの10.0; Win64の、x64-)のAppleWebKit / 537.36(KHTML、ヤモリ等)クローム/ 75.0.3770.142サファリ/ 537.36 ' } レスポンス = requests.get(URL、ヘッダー= ヘッダ)。 テキスト戻り応答 デフreplace_num_and_cmap(その結果、応答): "" " 将网页源代码中的替换成数字 :PARAM結果: :のparam応答: :リターン """ のためのキー、値result.items(): もしキー応答: #1 プリント(777) 応答= re.sub(キー、STR(値)、応答) の戻り応答デフ管理(応答): RES = etree.HTML(レスポンス) douyin_name = res.xpath(" // p個の[ @クラス= "ニックネーム"] //テキスト()")[0] douyin_id = ' ID:' + '' .join(res.xpath(' // P [@クラス= "shortid"] /テキスト()'。))を置き換える(' ''' guanzhu_num = '' .join( res.xpath(' //スパン[@クラス= "フォーカスブロック"] //テキスト()'))。(置き換える' ''' fensi_num = '' .join(res.xpath(" //スパン[ @クラス= "フォロワーブロック"] //テキスト()'))。(置き換えます' "'' Dianzan = ''.join(res.xpath(' //スパン[@クラス= "気に入っ-numがブロック"] //テキスト()'))。置き換える(' ''' works_count = '' .join(res.xpath(' // divの[クラス@ = "タブ・ラップ"] / DIV [1] // I /テキスト()'))。(置き換える' ''' ) 作品数量 like_count = '' .join(RESを。 XPathの(' // divの[クラス@ = "のようなタブタブを取得・リスト"] /スパン/ I /テキスト()'))。(置き換えます' '''愛の 印刷(douyin_name、douyin_id、guanzhu_num、fensi_num、dianzan、works_count、like_count) 場合 __name__ == ' __main__ ' new_cmap = map_cmap_num(get_cmap_dict、get_num_cmap) 応答 = get_html(" https://www.iesdouyin.com/share/user/ 68793469235 応答 = replace_num_and_cmap(new_cmap、応答) (応答)を管理
#インターフェイスの署名の別のシェアは、一時的な非上場の使用に、破壊します
 

 

おすすめ

転載: www.cnblogs.com/HugJun/p/11506298.html