一部のページでは、リクエストを直接使用してコンテンツを取得できず、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