小さなアプリケーション爬虫類のpython

クロール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。

継続するには。

おすすめ

転載: www.cnblogs.com/wangyi0419/p/12612558.html
おすすめ