Pythonのトレーニングデイ - 爬虫類について

#は、基本的な使用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)
 

 

おすすめ

転載: www.cnblogs.com/dadahappy/p/11094405.html