爬虫類要求の要求プロセス

爬虫三部曲

1.送信要求

デフget_page(URL):
   respone = requests.get(URL)
    戻り respone

2.データを解析

輸入デフ parse_index(HTML):

すべての一致を#findall

#Re.findall( "すべてに一致"、HTML、re.S)

(試合のフルテキスト用)#1 Re.S

detail_urls = re.findall(' <DIV CLASS = "アイテム"> <クラス= "imglink"のhref = "(。*?)" ' 、HTML、re.S)
    リターン detail_urls

#パースの詳細ページ

デフparse_detail(HTML):
  movie_url = re.findall(' < "?(*)"ソースSRC => ' 、HTML、re.S)
   の場合movie_url:
     リターン movie_url [0]

3.保存したデータ

輸入 UUID

タイムスタンプに基づいて生成された世界で唯一の文字列の一部について#Uuid.uuid4()

DEFのsave_video(コンテンツ):
  オープンで(F 'uuid.uuid4 {()} MP4 '' WB ' )F AS:
   f.write(コンテンツ)
   を印刷' ビデオをダウンロード... '

#メイン+ Enterキー

テストケース:

if_name_ = ' _main_ ' 
のためのライン範囲(5 ):
 URL = F ' http://www.xiaohuar.com/list-3-{line}.html '

#リクエストを送ります

応答= get_page(URL)
印刷(レスポンス)

#応答ステータスコードを返します。

#の印刷(respone.status_code)

#応答テキストを返します。

#の印刷(response.text)

#パースホームページ

detail_urls = parse_index(response.text)

詳細ページのURLを通じて#ループ

 detail_url detail_urls:
      プリント(detail_url)

 #すべての詳細ページには、要求を送信します

      detail_res = get_page(detail_url)
      印刷(response.text)

動画のURLのための#パースの詳細ページ

      move_url = parse_detail(detail_res.text)

#裁判官動画のURLは、印刷が存在します

      もしmove_url:
           プリント(move_url)

映像送信要求動画のURLを取得する#バイナリストリーム

      move_res = get_page(move_url)

#save_video機能へのバイナリビデオスプレッドは、ローカルに保存します

     save_video(move_res.content)

 

おすすめ

転載: www.cnblogs.com/changgeyimeng/p/11115811.html