嗨,这是我问过的第一个问题,如果它很愚蠢,那就很抱歉,但我是JavaScript和Greasemonkey的新手。
问题是如何阅读HTML的特定区域并将其存储为变量?
要阅读的示例代码:
<td align="center">
<br>
<b>Player:</b>
58236
<br>
<br>
<b>Guild:</b>
<a href="guild.aspx?guild=23234">Example Code</a>
<br>
<div>
<br>
<b>Old Nickname: </b>
Nick
<br>
<small>(until 2011-07-31)</small>
<br>
<br>
<b>Level:</b>
21.04 (Rank 3,315)
<br>
<b>Economy:</b>
969
<br>
<br>
<b>Account:</b>
Upgraded
<br>
<b>Expire:</b>
2011-08-29
<br>
<br>
<b>Account Start:</b>
49 Days
<br>
<br>
<img title="Account Upgraded Badge" alt="Account Upgraded Badge" src="http://cdn.astroempires.com/images/badges/badge_upgraded.gif">
<br>
<br>
</td>
现在说我希望提取玩家的等级,据我所知,我必须做类似的事情。
Level = document.body.innerHTML.match(/<b>Level:<\/b>/);
从那里开始,但我找不到很多关于如何使用这种方法在网页上阅读HTML的示例代码和解释。
答案 0 :(得分:0)
如果这真的是HTML,那么它就是一门艺术。
如果这是HTML的“简化”版本,请链接到未编辑的页面。如何提取信息取决于HTML的精确细节。
无论如何,请使用jQuery。它CSS-like selectors真的可以帮助你找到所需的位。
这是一个Greasemonkey脚本,它使用jQuery从指定的页面中提取 Level 。 :
// ==UserScript==
// @name _Get info from poorly structured HTML
// @include http://YOUR_SERVER/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// ==/UserScript==
var LvlMarker = $("b:contains('Level:')");
var LvlText = LvlMarker[0].nextSibling.textContent;
alert (LvlText);
请注意,在ajax-ified页面上需要额外的技巧。