在Python中用Selenium執行JavaScript


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())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM