如何使用Javascript / Greasemonkey读取特定的html

时间:2011-08-08 11:02:57

标签: javascript html greasemonkey

嗨,这是我问过的第一个问题,如果它很愚蠢,那就很抱歉,但我是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的示例代码和解释。

1 个答案:

答案 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页面上需要额外的技巧。