【发布时间】:2014-07-22 07:09:13
【问题描述】:
我想为名为 statseeker 的报告工具打开内部网页的网页,该工具存储从打开 URL 时运行的报告生成的图像。到目前为止,我是这样的:
import urllib
import urllib2
urlauth = 'http://statseeker/cgi/nim-report-lastn-drilldown?mode=ping&tz=America/Chicago&last_n=24h&device=jc-2090-1'
realm = 'statseeker'
username = 'admin'
password = '*******'
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(realm, urlauth, username, password)
opener = urllib2.build_opener(auth_handler)
data = opener.open(urlauth).read()
print data
此代码成功地访问网页并在页面末尾生成 .PNG 图像的图形,输出如下所示:
>>> import urllib
>>> import urllib2
>>>
>>> urlauth = 'http://statseeker/cgi/nim-report-lastn-drilldown?mode=ping&tz=Ame
rica/Chicago&last_n=24h&device=jc-2090-1'
>>> realm = 'statseeker'
>>> username = 'admin'
>>> password = '******'
>>> auth_handler = urllib2.HTTPBasicAuthHandler()
>>> auth_handler.add_password(realm, urlauth, username, password)
>>> opener = urllib2.build_opener(auth_handler)
>>> data = opener.open(urlauth).read()
>>> print data
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/st
rict.dtd">
<html>
<head>
<title>Ping Statistics - Last 24 Hours</title>
<link rel="stylesheet" type="text/css" href="/css/base.css">
<!--[if lt IE 7]>
<meta http-equiv="refresh" content="0; url=/unsupported_browser.html">
<![endif]-->
<script type="text/javascript" src="/js/utils.js"></script>
<script type="text/javascript" src="/js/nim.js"></script>
</head>
<body>
<div align="center">
<p class="p0">
<div align="center">
<table class="r_twb">
<tbody>
<tr>
<td colspan="5">
<table class="r_hdr" width="99%"><tbody>
<tr>
<td rowspan="2" class="leftlogo">
<img class="ss_logo2" src="/img/ss_logo_inverse_small.png">
</td>
<td>
<div class="r_hdr_title">Ping Statistics - Last 24 Hours</div>
</td>
<td nowrap class="rightlogo">
<span class="top_right" id="tog_refresh" title="start/pause
refresh" onclick="toggle_refresh(this)">
Refresh: <span id="refresh_id" >60</span>
<script type="text/javascript">toggle_refresh()</script>
</span>
<span class="top_right" onclick="schedule();">
<img src="/img/mail.png"
id="schedimg"
title="Email this Report"
onmouseover="this.src='/img/mail_light.png'"
onmouseout="this.src='/img/mail.png'">
</span>
<span class="top_right" onclick="create_pdf();">
<img src="/img/file_pdf.png"
id="pdfimg"
title="Create PDF"
onmouseover="this.src='/img/file_pdf_bright.png'"
onmouseout="this.src='/img/file_pdf.png'">
</span>
</td>
</tr>
<tr>
<td colspan="2">
<table class="r_hdr"><tbody>
<tr>
<td style="text-align:center;" id="td_tzselect">
<select id="tz" name="tz" onchange="change_tz(this.options[this.selectedIndex].v
alue); return false;">
<option value="America/Chicago" selected>America/Chicago
</select>
</td>
<td nowrap style="text-align:right;" id="timedisplay">
Sun 13 Jul 2014, 19:09
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr> <tr class="r_summary"><td class="r_d9" colspan="5"><select id="lastn" n
ame="lastn" onchange="change_lastn(this.options[this.selectedIndex].value); retu
rn false;"> <option value="12h">Last 12 Hours <option value="24h" selected>Last
24 Hours <option value="48h">Last 48 Hours <option value="7d">Last 7 Days <optio
n value="30d">Last 30 Days <option value="60d">Last 60 Days <option value="90d">
Last 90 Days <option value="lastmonth">Last Month <option value="thismonth">This
Month <option value="lastyear">Last Year <option value="thisyear">This Year</se
lect></td></tr>
<tr class="r_col_hdr">
<td valign="top"></td>
<td valign="top">Minimum</td>
<td valign="top">Maximum</td>
<td valign="top">Average</td>
<td valign="top">Total</td>
</tr>
<tr class="alt_row0">
<td class="r_d0l">Delay (ms)</td>
<td class="r_d0r">53</td>
<td class="r_d0r">106</td>
<td class="r_d0r">54</td>
<td class="r_d0r">-</td>
</tr>
<tr class="alt_row1">
<td class="r_d0l">Duplicate Responses</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
</tr>
<tr class="alt_row0">
<td class="r_d0l">Lost 1</td>
<td class="r_d0r">0</td>
<td class="r_d0r">1</td>
<td class="r_d0r">0</td>
<td class="r_d0r">2</td>
</tr>
<tr class="alt_row1">
<td class="r_d0l">Lost 2</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
</tr>
<tr class="alt_row0">
<td class="r_d0l">Lost 3</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
</tr>
<tr class="alt_row1">
<td class="r_d0l">Lost 4</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
<td class="r_d0r">0</td>
</tr>
</tbody>
</table>
</div>
</p>
<p class="p10">
<img class="graph" src="/graphs/ping.jc-2090-1.rtt.24h.1405296595.png">
</p>
<p class="p10">
<img class="graph" src="/graphs/ping.jc-2090-1.lost.24h.1405296595.png">
</p>
</div>
</body>
</html>
我不确定如何保存这些图像。末尾的文件名每秒更改一次。
我希望能够将我选择其名称的页面上的任何文件保存到通配符部分。
所以前提是:
- 在该网页中保存具有此名称
/graphs/ping.jc-2090-1.rtt.24h.1%%%%%%%%.png的任何图像。 - 和
save它在这个新的文件位置选择,我选择的名称。 - 也许将所有内容都保存在
image class=graph部分?
有什么想法吗?
关注点:
- 在 URL 的最后一部分之前,图像将始终命名为相同类型的事物。这是由报告软件生成的,无法更改。因此,每个文件都会出现相同的情况:
/graphs/ping.jc-2090-1.rtt.24h.%%%%%%%%%.png /graphs/ping.jc-2090-1.lost.24h.%%%%%%%%%.png
一旦弄清楚了,除了制作漂亮的 html 网站来显示这些图像之外,我所剩无几。
【问题讨论】:
标签: python html image wildcard urllib