0x00配置phantomJS
1、 在windows平台下
此種方法是彈瀏覽器進行自動化測試的。
1、下載谷歌的驅動
https://chromedriver.storage.googleapis.com/index.html
2、將解壓后的chromedriver.exe放到chrome瀏覽器的安裝目錄下。
3、在代碼中調用瀏覽器驅動,執行自動化操作。
chromedriver = 'chromedriver絕對路徑' driver = webdriver.Chrome(chromedriver) driver.get(url)
2、在linux命令行無界面下
使用phantomJS配合selenium,可以創建無界面的瀏覽器,這樣即可達到我們的目的。
配置方法:
1.安裝phantomJS
安裝包下載地址:http://phantomjs.org/download.html,包括Windows,Mac OS,Linux版本,自行選擇對應版本下載解壓即可
sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
用 tar 解壓 tar.bz2 文件時可能會遇到這個錯誤
debian:/usr/src# tar jxf linux-2.6.26.tar.bz2
tar: bzip2: Cannot exec: No such file or directory
tar: Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error exit delayed from previous errors
解決辦法:
此問題時缺少bzip2工具,安裝該工具。
yum install bzip2
0x02 安裝selenium
pip install selenium
到這里。環境就配置好了。接下來就可以上代碼了。
0x03 示例代碼
主要記錄一下常用用法:
from selenium import webdriver driver = webdriver.PhantomJS(executable_path='/bin/phantomjs/bin/phantomjs')#這里的executable_path填你phantomJS的路徑 driver.get('http://www.xxxx.com') print driver.title # 獲取title值
pageSource = driver.page_source # 獲取全文內容
elem_text = driver.find_element_by_name("text") # 通過想輸入地方的name值來定位
elem_text.send_keys(articles) # 發送的內容
driver.find_element_by_class_name("class值")
driver.find_element_by_id("btn-submit").click() # 通過id值來定位,並模擬點擊提交
driver.quit()
可能出現的報錯信息:
selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH
這種報錯就是你的PhantomJS保存路徑填錯了,檢查填寫的路徑是否為phantomjs程序的保存路徑。
注意這里使用的是windows系統,在路徑前面需要加上r,參考給出的代碼語句。
browser = webdriver.PhantomJS(executable_path=r'C:\Users\lyh\Anaconda2\phantomjs-2.1.1-windows\bin\phantomjs.exe')
參考文章
https://blog.csdn.net/lambert310/article/details/48734389
https://blog.csdn.net/JohinieLi/article/details/76622776