javascript
在Python中用Selenium执行JavaScript
Selenium自己不帶瀏覽器, 需要與第三方瀏覽器結(jié)合在一起使用.例如在Firefox上運(yùn)行Selenium.
PhantomJS是一個(gè)"無(wú)頭"瀏覽器. 它會(huì)把網(wǎng)站加載到內(nèi)存并執(zhí)行頁(yè)面上的JavaScript, 但是它不會(huì)向用戶展示網(wǎng)頁(yè)的圖形界面. 把Selenium和PhantomJS結(jié)合在一起, 就可以運(yùn)行一個(gè)非常強(qiáng)大的網(wǎng)絡(luò)爬蟲了, 可以處理cookie, JavaScript,header, 以及任何你需要做的事.
Selenium可以從PyPI網(wǎng)站(https://pypi.python.org/simple/selenium)下載Selenium庫(kù), 也可以用pip安裝.
PhantomJS可以從官網(wǎng)下載(http://phantomjs.org/download.html) , PhantomJS不是一個(gè)Python庫(kù),不能用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的選擇器都是用了非常直截了當(dāng)?shù)拿Q, 上面的例子, 也可以用如下的選擇器:
driver.find_element_by_css_selector("#content")
driver.find_element_by_tag_name("div")
另外, 如果你還是想用BeautifulSoup來(lái)解析網(wǎng)頁(yè)內(nèi)容, 可以用WebDriver的page_source函數(shù)返回頁(yè)面的源代碼字符串.
1 pageSouce = driver.page_source 2 bsObj = BeautifulSoup(pageSource) 3 print(bsObj.find(id="content").get_text())?
轉(zhuǎn)載于:https://www.cnblogs.com/CoolJayson/p/7350432.html
總結(jié)
以上是生活随笔為你收集整理的在Python中用Selenium执行JavaScript的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [原创] 为什么模除的时候一般建议选择素
- 下一篇: 计划程序:拒绝重复工作,让效率翻倍!