2014-11-24 2 views
2

Как разобрать код JavaScript внутри источника HTML с Python, например, я хочу, чтобы извлечь объект 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 –

+0

один вопрос вы может возникнуть в какой-то момент, заключается в том, что 'var productList = {daaa: function() {}};' является действительным JS, но недействительным JSON. – njzk2

ответ

-1

Я думаю, вам нужно добавить фикцию, чтобы компьютер мог читать, если это яваскрипт и питон, использовать это:

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

Привет, Бен Райли, Добро пожаловать в переполнение стека! Это не полный ответ; вернитесь назад и отредактируйте, чтобы полностью ответить на вопрос. –

1

Я предлагаю вам взглянуть на BeautifulSoup - это может поможет вам извлечь код JavaScript из HTML-файла (но не разобрать/запустить его):

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

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

Затем вы можете использовать некоторый интерпретатор JavaScript для запуска кода и получить переменные - есть сома e там как this one или this one. Просто Google это.

+0

Что вы думаете об использовании regexp вместо синтаксического анализа извлеченного JavaScript? – parkerproject

+0

@Parker, я не уверен, что это хорошая идея, никогда не пыталась разобрать любой язык прораминга с регулярным выражением. Наверное, ты мог бы попробовать. Кстати, вы можете попытаться использовать [pyparsing] (http://pyparsing.wikispaces.com/): он позволяет создавать собственные парсеры для анализа разных языков – Victor

Смежные вопросы