ファイルをダウンロードするためのPythonヘッドレスクローラーの実装

一部のページでは、リクエストを直接使用してコンテンツを取得できず、jsコードを動的に実行してコンテンツを生成します。この記事は主に、ダウンロードするためにjs呼び出しを行う必要がある場合などの特別なページを対象としています。

クロムをインストールします

wget [https://dl.google.com/linux/direct/google-chrome-stable\_current\_x86\_64.rpm](https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm)
yum install ./google-chrome-stable\_current\_x86\_64.rpm
yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts

chromedriverをインストールする

タオバオソース(推奨)

wget http://npm.taobao.org/mirrors/chromedriver/2.41/chromedriver_linux64.zip
unzip chromedriver\_linux64.zip
move chromedriver /usr/bin/
chmod +x /usr/bin/chromedriver

このブログをありがとう

上記の手順では、ダウンロードするのに適したバージョンを選択できます。注:Chromeとchromeドライバーは一致するバージョンである必要があり、chromeドライバーはサポートされているchromeバージョン番号を記録します。

実際の操作

ライブラリを導入する必要がある

from selenium import webdriver
from time import sleep
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import NoSuchElementException

Chromeの起動設定

chrome_options =Options()
chrome_options.add_argument('--no-sandbox')#DevToolsActivePortファイルが存在しないというエラーを解決します
chrome_options.add_argument('window-size=1920x3000') #ブラウザの解像度を指定する
chrome_options.add_argument('--disable-gpu') #Googleのドキュメントには、バグを回避するためにこの属性を追加する必要があると記載されています
chrome_options.add_argument('--hide-scrollbars') #スクロールバーを非表示,いくつかの特別なページを扱う
chrome_options.add_argument('blink-settings=imagesEnabled=false') #写真を読み込まない,ブースト速度
chrome_options.add_argument('--headless') #ブラウザは視覚的なページを提供しません.システムがLinuxでの視覚化をサポートしていない場合、これを追加しないと起動に失敗します

上記のブログにも感謝します

ポップアップなしのダウンロードやデフォルトのダウンロードパスなど、追加のパラメータを設定します

prefs ={'profile.default_content_settings.popups':0,'download.default_directory':'./filelist'}
chrome_options.add_experimental_option('prefs', prefs)

ドライバを初期化します

cls.driver=webdriver.Chrome(options=chrome_options)

ドライバーを終了します

cls.driver.quit()

URLをリクエストする

cls.driver.get(url)

指定されたjsコードを実行します

cls.driver.execute_script('console.log("helloworld")')

指定された要素を検索します

subtitle = cls.driver.find_element_by_class_name("fubiaoti").text

これまでに、Pythonヘッドレスクローラーダウンロードファイルの実装に関するこの記事を紹介しました。関連するPythonヘッドレスクローラーダウンロードファイルのコンテンツについては、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後さらに多くの記事が表示されることを願っています。 ZaLou.Cnをサポートしてください!

Recommended Posts

ファイルをダウンロードするためのPythonヘッドレスクローラーの実装
pythonで写真を自動的にダウンロードする方法の例
PythonクローラーのJSの分析
gomokuプログラムのPython実装
Pythonファイルを暗号化する3つの方法
Pythonプラグインメカニズムの詳細な実装
pythonリストの逆トラバーサルの実装
IOU計算ケースのPython実装
word2vec操作のPython予備実装
pythonselenium操作cookieの実装
Pythonクローラーのスクレイピーシミュレーションログイン
pythonクローラーのMongodbとpythonの相互作用
python学生管理システムの実装
python勾配降下アルゴリズムの実装
パイソンクローラー開発の学習パス
pythonクローラーは簡単に習得できますか
Pythonタートルライブラリ実装の基本的な分析
pythonのインストールが成功したことを確認する方法
pythonでのJWTユーザー認証の実装
Python3クローラーでのAjaxの使用
交差点のPython実装とIOUチュートリアル
アニメのスクリーンショットを取得するためのPythonクローラーの例
Pythonクラスの動的バインディングの実装原則
音楽ファイルを開くためのPythonのサンプルメソッド
航空機戦争を達成するための500行のPythonコード
pythonでファイルとディレクトリを削除する方法
AI自動マットサンプル分析のPython実装
手描き効果の例の共有のPython実装
pythonによる名刺管理システムの実装
Pythonでファイルを読み書きする方法
Pythonを使用してKSを計算する詳細な例
Pythonは釣りマスターのゲーム実装を書きます
Pythonはどのようにデータをjsonファイルに保存しますか
Python3.9の7つの機能
Pythonはファイルの名前を変更します
Pythonの紹介
pythonに基づく名刺管理システムの実装
Pythonインターフェース開発の実装手順の詳細な説明
Pythonでのパッケージの導入を理解する方法
PythonはFTPを実装して、ファイルをループでアップロードします
プレイカードの配布を実現するためのPythonシミュレーション
pythonでファイルを開く方法は何ですか