Selenium自己不帶瀏覽器, 需要與第三方瀏覽器結合在一起使用.例如在Firefox上運行Selenium.
PhantomJS是一個"無頭"瀏覽器. 它會把網站加載到內存並執行頁面上的JavaScript, 但是它不會向用戶展示網頁的圖形界面. 把Selenium和PhantomJS結合在一起, 就可以運行一個非常強大的網絡爬蟲了, 可以處理cookie, JavaScript,header, 以及任何你需要做的事.
Selenium可以從PyPI網站(https://pypi.python.org/simple/selenium)下載Selenium庫, 也可以用pip安裝.
PhantomJS可以從官網下載(http://phantomjs.org/download.html) , PhantomJS不是一個Python庫,不能用pip安裝.
1 from selenium import webdriver 2 import time 3 4 driver = webdriver.PhantomJS(executable_path=' ') 5 driver.get("http://pythonscraping.com/pages/javascript/ajaxDemo.html") 6 time.sleep(3) 7 print(driver.find_element_by_id('content').text) 8 driver.close()
executable_path變量值為phantomjs.exe的路徑. 如: executable_path = '/download/phantomjs-2.1.1-windows/bin/phantomjs'
selenium的選擇器都是用了非常直截了當的名稱, 上面的例子, 也可以用如下的選擇器:
driver.find_element_by_css_selector("#content")
driver.find_element_by_tag_name("div")
另外, 如果你還是想用BeautifulSoup來解析網頁內容, 可以用WebDriver的page_source函數返回頁面的源代碼字符串.
1 pageSouce = driver.page_source 2 bsObj = BeautifulSoup(pageSource) 3 print(bsObj.find(id="content").get_text())