インポート要求# 「」「 クロールXiaohuaネット動画: リクエストURLの HTT://www.xiaohuar.com/v/ 。2つのリクエストメソッド GET 3リクエストヘッダ。 User--エージェント:ユーザーエージェント 」「」 インポート時 のインポートリクエスト #クローラの三部作の 第1位要求を送信 get_page(URL)DEF: 応答= requests.get(URL) の戻り応答 #2分析データ のインポートを再 DEFのparse_index(HTML): #マッチすべてのfindAll #re.findall( '通常のマッチングルール''一致するテキスト''マッチングモード') #1 re.S:すべてのテキストのマッチングを検索 detail_urls = re.findall(' <divのクラス = "アイテム"> <クラス= "imglink"のhref = "(。*?)" " 、HTML、再。S) 、HTML、再。S) detail_urlsでdetail_urlのための#: #プリント(detail_url) リターンはdetail_urls #の分析詳細ページ :DEFのparse_detail(HTML) movie_url = re.findall( '<ソースSRC = "?(*)">'、HTML、re.S) #印刷(movie_url) IFをmovie_url: リターンmovie_url [0] のデータ保存# インポートUUID だけ文字列に応じて#1 uuid.uuid4()スタンプ生成部 #メイン+入力 DEF(コンテンツ)save_video: オープン(F「{uuid.uuid4(と。)} MP4 'F AS): '' WB f.write(コンテンツ) を印刷('ビデオは...ダウンロード') #テスト: IF __name__ ==' __main__「: 。レンジでライン(6)のために: URL = f'http://www.xiaohuar.com/list-3- {行}の.html ' #送信要求 応答= get_page(URL) #印刷は、(レスポンス) の##は、応答ステータスコードを返します #印刷(response.status_code) #は、応答ファイルを返します #印刷(response.text) #パースホームページ detail_urls = parse_index(response.text) 詳細ページのURLを通じて#ループ :detail_urlsでdetail_urlのための #印刷(detail_urlを) 各送信要求に#ページの詳細は get_page =(detail_url)detail_res #印刷(response.text) ビデオURLの#解決の詳細ページを movie_url = parse_detail(detail_res.text) #解析動画のURLの存在が印刷 IF movie_url: 印刷(movie_url ) #映像送信要求ビデオのURLを取得するバイナリストリーム = get_page movie_res(movie_url) ローカル保存するsave_video関数#バイナリビデオ広がり save_video(movie_res.content)