2014-11-24 75 views
2

如何解析HTML源與Python中的JavaScript代碼,例如我想提取的productList的對象解析JavaScript代碼的HTML源

這裏是我下面的來源;

<html> 
<body> 
<div id="content-wrapper" class="row-fluid clearfix" role="contentinfo"> 
<!-- html content --> 
</div> 


    <script> 
    var productList = { "daaa" : "ddddd"}; 
    </script> 

</body> 
</html> 
+0

這些幫助嗎? http://stackoverflow.com/questions/390992/javascript-parser-in-python http://stackoverflow.com/questions/18368058/how-can-i-parse-javascript-variables-using-python – 2014-11-24 21:41:40

+0

一個問題你在某些時候可能會遇到'var productList = {daaa:function(){}};'是有效的JS,但不是有效的JSON。 – njzk2 2014-11-24 21:43:08

回答

-1

我認爲你需要添加機能的研究使計算機可以讀取如果它是JavaScript和Python的, 使用這樣的:

script type="text/javascript"> <!-------or python----></script> 
+2

你好本萊利,歡迎來到堆棧溢出!這不是一個完整的答案;請返回並編輯以完全回答問題。 – 2014-11-24 21:53:52

1

我建議你去看看BeautifulSoup - 它可以幫助你從一個HTML文件中提取JavaScript代碼(而不是解析/運行):

source = """<html>...</html>""" 

from bs4 import BeautifulSoup 
soup = BeautifulSoup(source) 
js_code = soup.find_all("script")[0].text 

然後你可以使用一些JavaScript解釋器來運行代碼並獲得變量 - 有索姆在那裏像this onethis one。只是谷歌它。

+0

您如何使用regexp來解析提取的JavaScript? – parkerproject 2014-11-25 03:16:32

+0

@帕克,我不確定這是不是一個好主意,從來沒有試圖用自己認爲的正則表達式來解析任何proramming語言。我想你可以試試。順便說一句,你可以嘗試使用[pyparsing](http://pyparsing.wikispaces.com/):它允許你創建自己的解析器來解析不同的語言 – Victor 2014-11-25 11:33:32