Форум сайта python.su
0
Всем привет,
Есть 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();
...
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)
Отредактировано icefr0g (Фев. 5, 2013 09:17:51)
Офлайн
import re s = 'ajax_keys = ["[b]abcd", "adadad", "dadada"];' g = re.search(r'(ajax_keys ?= ?)(\[.+\])(;)', s) if g: for i in eval(g.groups()[1]): print i >>> [b]abcd[/b] adadad dadada >>>
Офлайн