首頁  >  文章  >  web前端  >  在Python中如何執行ExecJs語句

在Python中如何執行ExecJs語句

php中世界最好的语言
php中世界最好的语言原創
2018-03-07 10:10:324682瀏覽

這次帶給大家在Python中如何執行ExecJs語句,在Python中執行ExecJs語句的注意事項有哪些,以下就是實戰案例,一起來看一下。

execjs模組

在網頁資料提取的日常中,經常有一些有用的信息以json的格式存放在網頁的源代碼中,這時候要規則的提取的這些數據,就需要一個能夠解析js的套件了,execjs提供了簡單易用的api

安裝

使用pip安裝:

 pip install PyExecJS

使用easy_install安裝:

 easy_install PyExecJS

使用

這裡使用了一個網站的網頁做範例,它的來源程式碼中有這麼一段

在Python中如何執行ExecJs語句

我們的目標是提取圖中的json數據,程式碼如下:

import requestsimport reimport execjsfrom lxml import etree
url = '
https://
www.madewell.com/cn/madewell_category/SHIRTSTOPS/topsblouses/PRDOVR~F9375/F9375.jsp'res = requests.get(url)
doc = etree.HTML(res.text)#s_text = doc.xpath('//script/text()')#def f(var,text):#    if var in text:#        
return
 True#    return False#data = filter(partial(f,"var data"),s_text)[0]data = ''.join(doc.xpath('//script[contains(text(),"var data")]/text()'))
json_raw = re.search('({[\S\s]*\})',data).group(1)
jsn = execjs.eval(json_raw)
print
(jsn)

執行結果如下圖:

在Python中如何執行ExecJs語句

擴充

在一些資料的抽取中用到了類比瀏覽器,通常我們會用selenium或其他的webkit包,但是一般的模擬包只是回傳了渲染後的頁面,有的時候只是返回動態渲染的頁面是不夠的,還需要能夠執行js並控制js與dom交互,有興趣的同學可以看一下PyV8和w3c包

##我相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

怎麼在Android開發中與js互動

#JS模組化-RequireJS

在vue首頁怎樣做出底部導航TabBar

#一個用Vue.js 2.0+做出的石墨文檔樣式的富文本編輯器

以上是在Python中如何執行ExecJs語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn