リクエストインポート
#定期的な再インポートモジュール
インポートUUID#1 uuid.uuid(4)タイムスタンプに基づいて世界で唯一のランダムな文字列の周期で生成することができる
。#部作クローラ
1、送信要求#1
#2、データ解析し、
#3、データ記憶されている
#そして、コードの再利用を実現するための機能パッケージにより、以下の1の書き込み
要求を送信、#1
:get_page(URL)DEFを
レスポンス= requests.get(URL)
の戻り応答
#2、解析データ
#は、ホーム・ページのIDを解析する前にビデオを取得し、
DEFのparse_index(テキスト) :
RES = re.findall(」<のhref =「ビデオ_(*)。? 'response.text、re.S)
#Print(RES)
detail_url_list = []
RESでM_ID用:
detail_url =' HTTPS:// www.pearvideo.com/video_'+m_id
detail_url_list.append(detail_url)
リターンdetail_url_list
ビデオのURLの詳細ページを解決するために、##
DEFのparse_detail(テキスト):
"" "
ウェブ開発ツールのタグを検索します
。<動画のWebKit-playsinline =" "playsinline =" "X -のWebKit-のAirPlay =" "自動再生="自動再生"
SRC =" https://video.pearvideo.com/ MP4 / adshort / 20190613 / 1566073-14015522_adpkg-CONT-ad_hd.mp4 "S
tylE ="幅:100%;高さ:100%; "> </ビデオ>
<ビデオSRC * =?"「(*。?)
#= re.findall movie_url(( '<*ビデオ?SRC = "(。*?)"'、テキスト、re.S))
#のJSが、ルールは二次包装であることがわかった、彼らは定期的に規則改正する必要がある
#修正を定期的に
"" "
" ""
オープンソースの詳細ページし、Ctrl + F src_Urlを見つけるために、
<種類のスクリプト= "テキスト/ JavaScriptを">
VAR
contID = "1566073"、liveStatusUrl = "liveStatus.jsp」、liveSta = ""、playSta = "1"、
!!!のautoPlay = 1、isLiving = 1、isVrVideo = 1、hdflvUrl = ""、sdflvUrl = ""、hdUrl = ""、sdUrl = ""、ldUrl = ""、\
srcUrl =「https://でビデオ。 pearvideo.com/mp4/adshort/20190613/cont-1566073-14015522_adpkg-ad_hd.mp4" 、\
vdoUrl = srcUrl、skinRes = "//www.pearvideo.com/domain/skin"、videoCDN =「//video.pearvideo .COM ";
推出正则表达式:
srcUrl ="(。*?)
" """
movie_url = re.findall(( 'srcUrl = "(*)"。?'、テキスト、re.S))
リターンmovie_urlの
# 3、保存数据
DEF save_movie(movie_url):
応答= requests.get(movie_url)
#把视频写到本地
開く(F '{uuid.uuid4()} MP4'、 'WB')Fとして得ました:
f.write(response.content)
f.flush()
#テスト:関数を呼び出すと、クロール達成
__name__ __ == '__ MAIN__'の場合:
。#1、ホームの送信要求が
get_page =レスポンス=(URL = 'HTTPS://www.pearvideo.com/')をindex_res
ホームページの#2は、詳細ページのために解析される
detail_url_list = parse_index (index_res.text)
プリント(detail_url_list)
#3の詳細については、各ページのURLに対する要求送信
detail_url_listにdetail_urlために:
get_page =(URL = detail_url)detail_res
#Print(detail_res.text)
#1 R&LTは、ページ70の複数の上に登った
#動画のURL 4.解決の詳細ページ
movie_url = parse_detail(detail_res.text)
印刷(movie_url)
#5、ローカルに映像を保存
save_movie(movie_url)
定期的にクロールサイトのビデオのルールによると、(変更する、デバッグではありません)
おすすめ
転載: www.cnblogs.com/evan0925/p/11021812.html
おすすめ
ランキング