用urllib等抓取網頁,只能讀取網頁的靜態源文件,而抓不到由javascript生成的內容。javascript
究其緣由,是由於urllib是瞬時抓取,它不會等javascript的加載延遲,因此頁面中由javascript生成的內容,urllib讀取不到。html
那由javascript生成的內容就真的沒有辦法讀取了嗎?非也!java
本文要介紹一個python庫:selenium,目前最新版本是 2.44.0python
先安裝:web
pip install -U selenium
下面用三個例子來講明其用法:瀏覽器
【例0】網絡
1 from selenium import webdriver 2 3 browser = webdriver.Firefox() 4 browser.get('http://www.baidu.com/')
【例1】測試
1 from selenium import webdriver 2 from selenium.webdriver.common.keys import Keys 3 4 browser = webdriver.Firefox() 5 6 browser.get('http://www.baidu.com') 7 assert '百度' in browser.title 8 9 elem = browser.find_element_by_name('p') # Find the search box 10 elem.send_keys('seleniumhq' + Keys.RETURN) # 模擬按鍵 11 12 browser.quit()
【例2】ui
Selenium WebDriver 經常使用於網絡程序的測試。 下面是一個使用Python標準庫 unittest 的例子:url
1 import unittest 2 3 class BaiduTestCase(unittest.TestCase): 4 5 def setUp(self): 6 self.browser = webdriver.Firefox() 7 self.addCleanup(self.browser.quit) 8 9 def testPageTitle(self): 10 self.browser.get('http://www.baidu.com') 11 self.assertIn('百度', self.browser.title) 12 13 if __name__ == '__main__': 14 unittest.main(verbosity=2)