クロールA、B局の加入者情報
ニックネーム、性別、頭、ファンの数、選手の数などを含むクロール1-10 B駅の利用者の個人情報を、。
1 インポート要求 2 インポートJSONを 3。 インポートOSを 4。 5。 6。 vip_type = {0:' 通常のユーザ'、1:" 小メンバー"、2:「大メンバー' } 。7つのヘッダー= { 8。 ' リファラー':' HTTPS:// space.bilibili.com ' 9 ' User--エージェント':' Mozillaの/ 5.0(Windows NTの10.0; WOW64)のAppleWebKit / 537.36(KHTML、ヤモリなど)クローム/ 79.0.3945.130サファリ/ 537.36 " 10 } 11。 12である DEFのdownload_face(URL、MID、名): 13です ' '' ダウンロードアバター''' 14 印刷(' ...ユーザアバターをダウンロードする' ) 15 IF ないの os.path.exists(「B駅のユーザアバター' ): 16 os.mkdir(' B局ユーザアバター')#アバター用のディレクトリを作成します 。17 IMG = requests.get(URL、ヘッダー=ヘッダ).content #バイナリソースヘッド得る 18で 開く(と' B局のユーザアバター/{}_{}.jpg ' .format(MID、名)、'WB' )AS F: 19 f.write(IMG) 20は 21である DEF get_user_ele_info(URL): 22である ''' のユーザについての情報を得る'' ' 23である jsonData = requests.get(URL).json()' データ' ] 24 jsonData = MID [ ' MID ' ] 25 名= jsonData [ ' 名前' ] 26である セックス= jsonData [ ' セックス' ] 27 レベル= jsonData [ ' レベル'] 28 記号= jsondata [' サイン' ] 29 公式= jsonData [ ' 公式' ] [ ' 表題' ] 30 vip_num = jsonData [ ' VIP ' ] [ ' タイプ' ] 31である face_url = jsonData [ ' 顔' ] 32 download_face(face_url、MID、名前)# 33は、 プリント(' :{}ユーザーUID ' .format(MID)) 34が プリント(' ユーザ名:{} ' .format(名)) 35 プリント(' 性別:{} ' .format(セックス)) 36 プリント(' ユーザレベル:{} ' .format(レベル)) 37 [ 印刷(' ユーザタイプ:{} ' .format(vip_type.get(vip_num ))) 38で 印刷(' ユーザーの署名:{} ' .format(サイン)) 39 プリント(' ユーザの公式の証明:{} ' .format(公式)) 40 41である DEF (URL)をget_user_follow: 42である ' '' __jp3数とファンの数を懸念し、ユーザーを取得する『』 ' 43 = requests.get text_data(URL、ヘッダー=ヘッダ)の.text [6:-1] #STR 44は、 #は、冗長データを削除する文字列遮断動作を行うもの、非標準JSONデータ形式を取得し 45 jsonData = JSON。負荷(text_data) #文字列でJSONパケット再ロードとは、辞書型となる 46で データjsonData = [ ' データ' ] 47 以下のData = [ ' 以下' ] 48 フォロワ= DATA [ ' フォロワ' ] 49 プリント(' ユーザはフォロー番号:{} ' .format(下記)) 50 プリント(' ファンのユーザ番号:{}「.Format(フォロワ)) 51が 52である DEF get_user_achieve(URL): 53である 『』」、このようなファンの数として__jp4実績取得したユーザ、番号が対象であり、他のプレイヤーの数「」 ' 54は text_data = requests.get(URL、ヘッダー=ヘッダ)の.text [6:-1 ] 55 jsonData = json.loads(text_data) 56が データjsonData = [ ' データ' ] 57である VIDEO_VIEWS = DATA [ ' アーカイブ' ] [ ' ビュー' ] 58 いいね!=データは[ ' 好き' ] 59 印刷("適格なユーザーの数と同じように:{} ' .format(好きなもの)) 60 印刷(' ユーザービデオプレーヤーの数:{} " .format(VIDEO_VIEWS)) 61は、 62で 63ある DEF )(メイン: 64 のための I における範囲(1,11 ) : 65 url_ele_info = ' https://api.bilibili.com/x/space/acc/info?mid={}&jsonp=json ' .format(I) 66 url_follow = " https://api.bilibili.com/ X /関係/ STAT?VMID = {} =&JSONP JSONPコールバック&JP3 = __ ' .format(I) 67 url_achieve = 'https://api.bilibili.com/x/space/upstat?mid={}&jsonp=jsonp&callback=__jp4 ' .format(I) 68 get_user_ele_info(url_ele_info) 69 get_user_follow(url_follow) 70 get_user_achieve(url_achieve) 71 プリント(' - ' * 100 ) 72 73 なら __name__ == ' __main__ ' : 74 メイン()
結果:
ユーザのアバター:
II。
継続するには。。。