#は、基本的な使用1.requests
インポート要求 #のライブラリインポート要求要求を #レスポンスオブジェクトを取得するためにBaiduのページの送信要求 (URL =レスポンス= requests.getを「https://www.baidu.com/ 」) #をUTFに設定した文字エンコーディングを-8 response.encoding = ' UTF-8 ' #の応答における印刷テキスト 印刷(response.text) #書かれたローカル応答テキスト を開くと(' baidu.html '、' W '、エンコード= ' UTF-8 ' )AS F: f.write(response.text)
#2。
「」「」「」
「」「
:ビデオオプション
梨ビデオ
「」」
#のインポート要求
#の
映像送信要求の送信元アドレスには##を
(=#のrequests.get応答
#「https://video.pearvideo.com/mp4/ adshort / 20190625 / 1570302-14057031_adpkg-ad_hd.mp4-CONT ')
#
などの画像、ビデオ、データなどの##のプリントバイナリストリーム、
#印刷(response.content)
#
##ローカルに保存された映像
(オープンと#'ビデオ.MP4 '' WB ')F AS:
#1 f.write(response.content)
' ''
最初のホームビデオ梨にリクエストを送信し、1を
https://www.pearvideo.com/
すべての動画IDを取得解決:
video_1570302
再を。 findAll()
2、ビデオの詳細ページのURLを取得するために:
!地下鉄に奪わスリルの男がに徒歩で滑っ
//www.pearvideo:httpsを。COM / video_1570302
シークレットカレーズ
https://www.pearvideo.com/video_1570107
「」「
のインポートが要求
輸入のRe#の定期を、テキストデータの解析のための
ビデオのホームピアーズに#1、第1の送信要求を
応答= requests.get(」HTTPS://www.pearvideo .COM / ')
#プリント(response.text)
通常のビデオマッチングアクセサリーIDの再#
#パラメータ1:定期的なマッチングルール
#2パラメータ:テキスト解析
、パターンマッチング:#3パラメータ
res_list = re.findall(' <HREFを = "(。*?)ビデオ_" 'response.text、re.S)
#印刷(res_list)
#は、各動画の詳細ページのURLをステッチ
res_listでv_idのために:
detail_url =' https://www.pearvideo.com/video_ 「+ v_id
#印刷(detail_url)
#は、ビデオソースのURLの前に、ビデオの各ページのリクエストを送信
レスポンス= requests.get(URL = detail_url)
#印刷(response.text)
#のパースと動画のURLの前にページを抽出
#ビデオのURL
= re.findall video_url( 'srcUrl = "(。*?)"'、response.text、re.S)[0]
印刷(video_url)
#ビデオ名
VIDEO_NAME = re.findall(
「<H1 CLASS =「ビデオ- TT「>(。*?)</>」のH1、response.text、re.S)[0]
印刷(VIDEO_NAME)
バイナリのビデオストリームを取得するには#のURL映像送信要求
v_response = requests.get(video_url)を
オープンして( 's.mp4%' %VIDEO_NAME、F AS 'WB'):
f.write(v_response.content)
印刷(VIDEO_NAME、 'ビデオは完全にクロール')
IMDBのTop250クロール#3
' ''
https://movie.douban.com/top250?start=0&filter=
https://movie.douban.com/top250?start=25&filter=
HTTPS://movie.douban ?.COM / TOP250スタート= 50&フィルタ=
1送信要求
2.データを解析し
、データ保存3.
「」 '
のインポートが要求
再インポートが
#クローラの三部作の
第1位は、要求を送信します
:DEF get_page(BASE_URL)
(レスポンス= requests.getをBASE_URL)
レスポンスを返す
テキスト解析#2を
DEFのparse_index(テキスト):
RES = re.findall(「<DIV CLASS = "項目"> * <EMクラス= "">(*。?。?)</ EM>。 ?* <a href="(.*?)"> * <スパンクラス = "タイトル"> </ span>の* ディレクター(*。?):。? 。?</ P> *(*。?)。 ?<スパンクラス= "rating_num" 。*?>(。*?)</span>.*?<span>(.*?)人评价</ span>を。*?<スパンクラス= "INQ">(。*?)</ span>の」、テキスト、re.S)
#印刷(RES)
RESは返す
#3.保存したデータ
DEFのsave_data(データを):
オープン( 'UTF-8' 'douban.txt'、 'A'、エンコーディング=)F ASで:
f.write(データ)
#+キーメインを入力し
た場合== __name__ '__main__':
#10 NUM =
#= BASE_URL「https://movie.douban.com/top250?start={}&filter='.format(num)
NUM = 0
におけるラインレンジ用(10):
= BASE_URLをf'https:?//movie.douban.com/top250 NUM} {スタート=&フィルタ=」
NUM = + 25
印刷(BASE_URL)
リクエストを送信する#1、呼び出し元の関数の
レスポンス= get_page(BASE_URL)
#2.分析テキスト
movie_list = parse_index(response.text)
#3。データ保存
#データフォーマット
movie_listで映画のために:
#印刷(動画)
#エキス割り当て
#映画ランキング、映画のURL、フィルム名、ディレクター-主演-映画のスコアの種類、レビューの数、フィルムの概要を
V_TOP、v_url、v_name、v_daoyan、v_point、v_num、v_desc =作品
#V_TOP =映画[0]
#のv_url =映画[1]
moive_content = F '' '
映画のランキング:{v_top}
動画のURL:{v_url}
映画名:{v_name}
主演監督:{v_daoyan}
映画の評価:{v_point}
評価者数: {} v_num
映画:v_desc} {
\ N-
'' '
印刷(moive_content)
データ保存#
save_data(moive_content)