4.簡単爬虫類――seleniumの環境インストールUbuntu環境

6988 ワード

この内容はただ学習に供するだけで、もし間違いがあるならば、指摘を歓迎します
selenium[1]は、Webアプリケーションのテストに使用されるツールです.Seleniumテストは、本物のユーザーが操作しているようにブラウザで直接実行されます.サポートされているブラウザには、IE(7、8、9、10、11)、Mozilla Firefox、Safari、Google Chrome、Operaなどがあります.このツールの主な機能は、ブラウザとの互換性をテストすることです.アプリケーションが異なるブラウザやオペレーティングシステムでうまく機能するかどうかをテストすることです.システム機能のテスト:回帰テスト検証ソフトウェア機能とユーザーニーズを作成します.自動録画動作と自動生成をサポートする.Net、Java、Perlなどの異なる言語のテストスクリプト.
ここではseleniumを使って爬虫類を補助します
環境Ubuntu 18.04 Chrome本67.0.3396.62(正式版)Firefox 60.0.1(64ビット)
seleniumは、コードを使用してブラウザを自動化することができます.しかし、コードを使用して操作する以上、異機種ドライブが必要です.まず彼のコードの一部を見てみましょう
from selenium import webdriver

lagou_url = "https://www.lagou.com/zhaopin/xinmeitiyunying/?labelWords=label"
baidu_url = "https://www.baidu.com/"

browser = webdriver.Firefox()
browser = webdriver.Chrome()
browser = webdriver.Android()
browser = webdriver.PhantomJS()

browser.get(baidu_url)
print(browser.page_source)
browser.close()

ここでbrowserは複数のブラウザを定義し、seleniumは複数のブラウザをサポートします.しかし、ブラウザによって必要なドライブが異なります.次の表を見てchromeブラウザのドライバアドレスをダウンロードしてください.http://chromedriver.storage.googleapis.com/index.htmlfirefoxブラウザのドライバアドレスをダウンロードします.https://github.com/mozilla/geckodriver/releases/chromeバージョン対応:https://chromedriver.storage.googleapis.com/よく使う2つは、他の自分で検索してダウンロードした後、私たちは2つの使用方法があります.ドライバをpython 3の同じディレクトリの下に、ubuntuの下に/usr/binの下に配置します.browser=webdriver.Chrome()でドライブに直接書き込むパス
このエラーは、ドライブを装着していないことを示しています.ここではphantomjsを例に挙げます.
/home/alpaca/.local/share/virtualenvs/Pipenv-zDk3T9d3/bin/python3 /home/alpaca/hello/test.py
/home/alpaca/.local/share/virtualenvs/Pipenv-zDk3T9d3/lib/python3.6/site-packages/selenium/webdriver/phantomjs/webdriver.py:49: UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
  warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '
Traceback (most recent call last):
  File "/home/alpaca/.local/share/virtualenvs/Pipenv-zDk3T9d3/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)
  File "/usr/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'phantomjs': 'phantomjs'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/alpaca/hello/test.py", line 7, in 
    browser = webdriver.PhantomJS()
  File "/home/alpaca/.local/share/virtualenvs/Pipenv-zDk3T9d3/lib/python3.6/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 56, in __init__
    self.service.start()
  File "/home/alpaca/.local/share/virtualenvs/Pipenv-zDk3T9d3/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 83, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH. 

chromeをテストしてubuntuの下で現れました
/home/alpaca/.local/share/virtualenvs/Pipenv-zDk3T9d3/bin/python3 /home/alpaca/hello/test.py
Traceback (most recent call last):
  File "/home/alpaca/hello/test.py", line 7, in 
    browser = webdriver.Chrome()
  File "/home/alpaca/.local/share/virtualenvs/Pipenv-zDk3T9d3/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 68, in __init__
    self.service.start()
  File "/home/alpaca/.local/share/virtualenvs/Pipenv-zDk3T9d3/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 98, in start
    self.assert_process_still_running()
  File "/home/alpaca/.local/share/virtualenvs/Pipenv-zDk3T9d3/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 111, in assert_process_still_running
    % (self.path, return_code)
selenium.common.exceptions.WebDriverException: Message: Service chromedriver unexpectedly exited. Status code was: 127

この1枚の誤り、しかし多くの招待状を探して、同じく解決することができなくて、だから私はfirefoxを試みました
Firfoxテスト成功