Pythonショートビデオクローラーチュートリアル
2022-01-02 10:15:30
本当に、今日は短い動画サイトの波を這わせましょう、どれも目を引くものばかりですよ〜。
ウェブサイトのアドレスはコードの中に入っているので、注意すればわかると思います。
使用ソフト
python 3.8
pycharm 2021.2
モジュール
requests
parsel
re
concurrent.futures
time
warnings
モジュールのインストール方法がわからない方はこちらをご覧ください。 Pythonモジュールのインストールとインストールに失敗した場合の対処法
手順は見たくないでしょうから、コードに直行します。
import requests
import parsel
import re
import concurrent.futures
import time
import warnings
# Cancel warnings
warnings.filterwarnings("ignore")
def get_html(url):
"""Send a request to get the source code of a web page"""
html_data = requests.get(url=url, verify=False).text
return html_data
def parse_data_1(html_data):
"""Parse for the first time, get all the detail page links """
selector = parsel.Selector(html_data)
url_list = selector.xpath('//a[@class="meta-title"]/@href').getall()
return url_list
def parse_data_2(html_data):
"""Parse a second time, get the video link """
video_url = re.findall('url: "(. *?) ",', html_data)[0]
return video_url
def save(video_url):
"""Save video"""
title = video_url.split('/')[-1] # take the field in the link as the title
video_data = requests.get(video_url, verify=False).content # send network request
with open(f'video/{title}', mode='wb') as f:
f.write(video_data)
print(title, "Crawl successful!!! ")
start_time = time.time()
url = 'https://www.520mmtv.com/hd/rewu.html'
# 1. send a request to the target site
html_data = get_html(url=url)
# 2. parse the data for the first time Extract the details page link
url_list = parse_data_1(html_data=html_data)
for info_url in url_list[:10]:
# 3. send a request to the detail page
html_data_2 = get_html(url=info_url)
# 4. parse the data a second time to extract the video play address
video_url = parse_data_2(html_data=html_data_2)
# 5. save the video
save(video_url=video_url)
print('Time spent:', time.time() - start_time)
これは、Pythonの短いビデオクローラーチュートリアルのこの記事の終わりです、より関連するPythonのクローラーチュートリアルの内容は、スクリプトハウスの過去の記事を検索してくださいまたは次の関連記事を閲覧を継続し、あなたがよりスクリプトハウスをサポートすることを願っています!...
関連
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】Pandasでデータ(.datファイル)を読み込む
-
pygame.error。Unable to open file 'audio/gege.wav' 报错_qq_45209973的博客-程式员秘密
-
[解決済み] python-dev のインストールエラーです。ImportError: apt_pkg という名前のモジュールがありません。
-
[解決済み] AttributeError: 'str' オブジェクトには 'get' 属性がありません。
-
[解決済み] Pythonです。pd.DataFrameの行をループする際に「ValueError: can only convert an array of size 1 to a Python scalar」(サイズ1の配列をPythonのスカラーに変換することしかできません。
-
[解決済み] SqlAlchemy Python マルチデータベース
-
[解決済み] spyder python 変数エクスプローラを再度開く方法
-
[解決済み] 再帰とヘルパー関数
-
nltkダウンロードエラー[Errno 61] 接続が拒否された場合の究極の解決方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み] テスト
-
Flaskのエラー「TypeError.Flask」を解決する。ユニコードオブジェクトはハッシュ化する前にエンコードする必要があります"
-
[解決済み] "SyntaxError: キーワードargの後に非キーワードarg" Pythonでrequests.post()を使用した場合のエラーです。
-
[解決済み] SQL文の中ですべてのパラメータが使用されていない(Python、MySQL)
-
[解決済み] return list.sort()」は、なぜリストではなくNoneを返すのですか?
-
[解決済み] SQLAlchemy で `UNIQUE` 制約をモデル化するには?
-
[解決済み] .whl is not valid wheel filename, storing debug log for failure in C:\.
-
[解決済み] 2つのファイルを比較し、共通する行を削除する
-
Pythonの各種実行時エラー(SyntaxError : invalid syntaxなど)。