爬蟲利器--無界面瀏覽器+selenium

自動化測試工具,seleium
pip install selenium

無界面瀏覽器PhantomJS

PhantomJS 是一個基于Webkit的“無界面”(headless)瀏覽器,它會把網站加載到內存并執行頁面上的 JavaScript,因為不會展示圖形界面,所以運行起來比完整的瀏覽器要高效。

注意:PhantomJS 只能從它的官方網站(http://phantomjs.org/download.html)下載。 因為 PhantomJS 是一個功能完善(雖然無界面)的瀏覽器而非一個 Python 庫,所以它不需要像 Python 的其他庫一樣安裝,但我們可以通過Selenium調用PhantomJS來直接使用。

# 導入 webdriver
from selenium import webdriver

# 要想調用鍵盤按鍵操作需要引入keys包
from selenium.webdriver.common.keys import Keys

# 調用環境變量指定的PhantomJS瀏覽器創建瀏覽器對象
driver = webdriver.PhantomJS()

# 如果沒有在環境變量指定PhantomJS位置
# driver = webdriver.PhantomJS(executable_path="./phantomjs"))

# get方法會一直等到頁面被完全加載,然后才會繼續程序,通常測試會在這里選擇 time.sleep(2)
driver.get("http://www.baidu.com/")

# 獲取頁面名為 wrapper的id標簽的文本內容
data = driver.find_element_by_id("wrapper").text

# 打印數據內容
print data

# 打印頁面標題 "百度一下,你就知道"
print driver.title

# 生成當前頁面快照并保存
driver.save_screenshot("baidu.png")

# id="kw"是百度搜索輸入框,輸入字符串"長城"
driver.find_element_by_id("kw").send_keys(u"長城")

# id="su"是百度搜索按鈕,click() 是模擬點擊
driver.find_element_by_id("su").click()

# 獲取新的頁面快照
driver.save_screenshot("長城.png")

# 打印網頁渲染后的源代碼
print driver.page_source

# 獲取當前頁面Cookie
print driver.get_cookies()

# ctrl+a 全選輸入框內容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')

# ctrl+x 剪切輸入框內容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')

# 輸入框重新輸入內容
driver.find_element_by_id("kw").send_keys("itcast")

# 模擬Enter回車鍵
driver.find_element_by_id("su").send_keys(Keys.RETURN)

# 清除輸入框內容
driver.find_element_by_id("kw").clear()

# 生成新的頁面快照
driver.save_screenshot("itcast.png")

# 獲取當前url
print driver.current_url

# 關閉當前頁面,如果只有一個頁面,會關閉瀏覽器
# driver.close()

# 關閉瀏覽器
driver.quit()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容