天天看點

Python Selenium 快速上手

Selenium是用于浏覽器測試的自動化工具,可以直接運作在浏覽器中,模拟使用者的各種操作。在爬蟲領域的應用,主要就是模拟人的操作,打開浏覽器,擷取網頁源碼。獲得網頁源碼之後就可以再利用BeautifulSoup、XPath等去解析和提取我們需要的資料了。

1 導入核心子產品

  selenium.webdriver子產品是使用中的核心子產品,提供了常用浏覽器的WebDriver實作。目前支援的WebDriver實作有Firefox,Chrome,IE和Remote等,本文主要使用Chrome展示。

# 導入webdriver子產品
from selenium import webdriver                

2 打開浏覽器

  導入driver子產品之後,就可以使用它打開浏覽器了,代碼如下所示

browser = webdriver.Chrome(chrome_path) # chrome_path為本地的chrome驅動的路徑
browser_phantomjs = webdriver.PhantomJS(phantomjs_path) # phantomjs_path為本地的phantomjs_path的路徑                

3 打開網頁

  打開Chrome浏覽器後,會打開一個預設的空白标簽頁,接下來就可以在标簽頁中打開一個網頁了,代碼如下所示:

url = r"https://www.jianshu.com/u/a9f6f9178f66"
browser.get(url) # 打開網頁
init_handle = browser.current_window_handle # 獲得目前标簽頁的句柄(用來定位不同的标簽頁)                

  在浏覽器中可以打開很多個标簽頁,每一個标簽頁都有唯一的辨別,也被我們稱作标簽頁的句柄,可以用來在不同的标簽頁之間切換。

4 打開多個網頁

  我們也可以在新的标簽頁中打開另一個網頁,需要通過執行一個簡單的腳本語句實作,腳本語句如下第2行代碼所示:

new_url = r"https://github.com/Oythonhill"
open_new_tag_command = "window.open("{}")".format(new_url) 
browser_chrome.execute_script(open_new_tag_command) # 執行腳本語句,在新的标簽頁中打開網頁
total_handles = browser.window_handles # 擷取所有标簽頁句柄(清單類型)                

  同樣的,我們也可以擷取目前所有打開标簽頁的句柄(以清單類型呈現)。

  然後,就可以通過不同的标簽頁句柄,在标簽頁之間切換,代碼如下:

5 擷取源碼

  打開網頁的目的就是為了擷取網頁的頁面源碼,獲得源碼之後就可以通過Beautiful或者XPath進行解析了,當然也可以使用Selenium内置的定位元素的一些方法,這個在另外一篇再說。

  擷取目前标簽頁的源碼的代碼如下:

  最後,就是關閉标簽頁和浏覽器

browser.close() # 關閉目前标簽頁
browser.quit() # 關閉整個浏覽器                

轉載請注明出處,http://www.cnblogs.com/Oythonhill/p/8542680.html

交流和問題,請郵箱聯系:[email protected]

轉載于:https://www.cnblogs.com/Oythonhill/p/8542680.html