Есть html страница, на которой присутствует много яваскриптов. Требуется распарсить страницу и в конкретном скрипте, “вытянуть” определённое значение. Код страницы следующий:
<!DOCTYPE html>
<html lang="en" class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8" />
....
<script type="text/javascript">
....
<script type="text/javascript">
$j(document).ready(function() {
if (!($j.cookie("ios"))) {
new $c.free.widgets.FreeAdvDialog().open();
$j.cookie("ios", "seen", { path: '/', expires: 10000});
};
ajax_keys = ["[b]b8a7b9a9659a495fd8a7483a7f699d7420a60dc1[/b]", "3ab02913b6f3b5abf1ec44ac10aa93ace6c537c0", "53c248ed515fafc48efa0ca7d2b6656eea745324", "1618817133a29d61ba5200ae516a0c7e007a5940"];
var is_dm = false;
/* async chart loader */
var chart = new $c.free.widgets.Chart({
target: $j('#graph'),
width: 990,
height: 275,
site: "911.com",
source_panel: 'us'
});
var chart_view = new $c.free.widgets.ChartView({
chart: chart,
csv_button: 'csv-export',
save_button: 'graph-image',
embed_button: 'embed-graph',
key: ajax_keys[1]
});
chart_view.render();
...
Для решения задачи использую BeautifulSoup (для парсинга страницы).
from bs4 import BeautifulSoup import urllib2, re url = '911.com' data = urllib2.urlopen('url').read() soup = BeautifulSoup(data) #вывожу значение нужного яваскрипта на странице to_extract = soup.findAll('script')[51]
Далее распарсить яваскрипт не получается - скорей всего нужно использовать регулярные выражения, в которых не очень силен.
Такая строка:
ajaxre = re.findall("ajax_keys = ([*?;]+)", to_extract)
TypeError: expected string or buffer
Заранее спасибо за любые советы.