ショック!Selenium別れPhantomJS
3714 ワード
背景
今日ローカルデバッグSelenium+PhantomJSに基づくダイナミック爬虫プログラムが無事終了した後、サーバーへの配備に着手し、買ったばかりの熱い京東雲、パチパチインストール環境、最後に走ったときにこんなエラーを報告しました.
私が5回試験してやっと漂った6級英語を使って目を凝らしてみると、新しいバージョンのSeleniumはPhantomJSをサポートしていません.ChromeやFirefoxのトップレス版を使ってください.头の中で一瞬にしてこの歌のメロディーが鸣り响いて、まったく受け入れることができなくて、どうして私达のPhantomJSを舍てました(¯▽¯)¯(¯▽¯)¯)¯(
この半年は爬虫類の需要が書かれておらず、最近は地元で使われている古いバージョンのSeleniumで開発されているため、PhantomJSのハイさが続いていたが、足取りが遅れていた.調べてみると、昨年7、8月にChromeとFirefoxが相次いでヘッドレスブラウザモードを発売したのかもしれません.そのためか、PhantomJSが独占的に騒ぎ立てる局面は一瞬にして失われ、歴史の塵の中に消えていくのだろうか......小さな工場から出た革新的な製品は、大きな工場が類似の製品を作った後、小さな工場GGも、たぶんそういうことだろう......
Selenium+Headless Firefox
いやだけど、人はいつも過去の美しさを追憶するわけにはいかない.
実はSelenium+Headless Firefoxは何も言うことはありませんが、Selenium+Friefoxとの違いはインスタンス化するときにパラメータを渡すだけです.
注意すべき点は、ローカルにFirefoxが必要です.そうしないと、キャリア が見つかりません.ローカルにgeckodriverが必要です.環境変数 を再構成したほうがいいです.がなくなった 各言語のサンプルコードはこのリンクで見つけることができます.ここでpythonのサンプルコードを運びましょう.
win 10もubuntuもテストして大丈夫でしたが、以前はPhantomJSを1つインスタンス化して約3秒、Headless Firefoxなら7秒くらい・・・実は大雅を傷つけませんでした.
ここで友情は初心者の友达にヒントを与えて、1つのホームページをダウンロードするたびに1つのwebdriver(Firefox or Chrome)をインスタンス化してからclose()を落として、webdriverをインスタンス化する时間も时間です~ダウンロード器を単例クラスにするか、webdirverをクラス変数にすることをお勧めします.
Selenium+Headless Chrome
これは上と大同小異で、私は試していません.ドアを転送します. PhantomJSはSeleniumにおいて時代遅れと表記された対応策 Getting Started with Headless Chrome
こまごました考え
上记のあの歌の中の
1段目の今日は昨日になって、またバレンタインデーになってきましたね.去年のバレンタインデーにもブログを书いたみたいですね.去年も今のように独身だったんですね.なんて涙が出てきましたか.
今日ローカルデバッグSelenium+PhantomJSに基づくダイナミック爬虫プログラムが無事終了した後、サーバーへの配備に着手し、買ったばかりの熱い京東雲、パチパチインストール環境、最後に走ったときにこんなエラーを報告しました.
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
私が5回試験してやっと漂った6級英語を使って目を凝らしてみると、新しいバージョンのSeleniumはPhantomJSをサポートしていません.ChromeやFirefoxのトップレス版を使ってください.头の中で一瞬にしてこの歌のメロディーが鸣り响いて、まったく受け入れることができなくて、どうして私达のPhantomJSを舍てました(¯▽¯)¯(¯▽¯)¯)¯(
この半年は爬虫類の需要が書かれておらず、最近は地元で使われている古いバージョンのSeleniumで開発されているため、PhantomJSのハイさが続いていたが、足取りが遅れていた.調べてみると、昨年7、8月にChromeとFirefoxが相次いでヘッドレスブラウザモードを発売したのかもしれません.そのためか、PhantomJSが独占的に騒ぎ立てる局面は一瞬にして失われ、歴史の塵の中に消えていくのだろうか......小さな工場から出た革新的な製品は、大きな工場が類似の製品を作った後、小さな工場GGも、たぶんそういうことだろう......
Selenium+Headless Firefox
いやだけど、人はいつも過去の美しさを追憶するわけにはいかない.
実はSelenium+Headless Firefoxは何も言うことはありませんが、Selenium+Friefoxとの違いはインスタンス化するときにパラメータを渡すだけです.
注意すべき点は、
from selenium.webdriver import Firefox
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support import expected_conditions as expected
from selenium.webdriver.support.wait import WebDriverWait
if __name__ == "__main__":
options = Options()
options.add_argument('-headless') #
driver = Firefox(executable_path='geckodriver', firefox_options=options) # ,
wait = WebDriverWait(driver, timeout=10)
driver.get('http://www.google.com')
wait.until(expected.visibility_of_element_located((By.NAME, 'q'))).send_keys('headless firefox' + Keys.ENTER)
wait.until(expected.visibility_of_element_located((By.CSS_SELECTOR, '#ires a'))).click()
print(driver.page_source)
driver.quit()
win 10もubuntuもテストして大丈夫でしたが、以前はPhantomJSを1つインスタンス化して約3秒、Headless Firefoxなら7秒くらい・・・実は大雅を傷つけませんでした.
ここで友情は初心者の友达にヒントを与えて、1つのホームページをダウンロードするたびに1つのwebdriver(Firefox or Chrome)をインスタンス化してからclose()を落として、webdriverをインスタンス化する时間も时間です~ダウンロード器を単例クラスにするか、webdirverをクラス変数にすることをお勧めします.
Selenium+Headless Chrome
これは上と大同小異で、私は試していません.ドアを転送します.
こまごました考え
上记のあの歌の中の
ここは反対の意味で、中国语の反対ではありませんて、しかし、本当に良い感じ~1段目の今日は昨日になって、またバレンタインデーになってきましたね.去年のバレンタインデーにもブログを书いたみたいですね.去年も今のように独身だったんですね.なんて涙が出てきましたか.