我想使用內置搜索功能中的網站從中收集數據,但無法解決如何按下「搜索」按鈕,因爲它有一些JavaScript纏繞它和id隨着頁面的每次新迭代而改變。perl使用HTML :: Treebuilder查找不同的元素ID
該網站部分的數據如下。
<html>
<head>
</head>
<body>
<table>
<tr>
<td>
<td>
<table>
<tr>
<td>
<!-- start of toolbar Main -->
<table>
<tr>
<td>
<table>
<tr class="buttonPad">
</tr>
<tr>
* <td nowrap="true" valign="top" class="button"><a id="S7674" accesskey="S" class="button" title="SEARCH" onclick="dispatch('S7674');"><u>S</u>></td>
</tr>
</table>
</td>
<td</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</td>
</tr>
</table>
</body>
</html>
和我的代碼
my $tree= HTML::TreeBuilder::XPath->new;
$tree->parse($url);
my @nodes = $tree->findnodes('/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table.buttonSpace/tbosy/tr/a.button')->get_nodelist; # line is modified later.
my $nodecount = scalar(@nodes);
if ($nodecount > 0) { print "we found something\n"; }
else { print "nothing found\n"; }
foreach my $node (@nodes)
{
print "node is $node\n";
my $id = $node->findvalue('button');
print "my id is $id\n";
}
可悲的是我的代碼不會返回任何節點的值。
非常感謝提前。
微
謝謝你,夥計,這似乎對這個HTML數據很好地工作,但不是當我嘗試它的網站本身。 (注意,我爲這篇文章收集了很多這方面的數據)在運行之前,我應該對url數據做些什麼? – MicrobicTiger
以及如何將'id'分配給一個變量,以便稍後將其作爲按鈕單擊時調用它? – MicrobicTiger
發佈未改變的html。你可能會發現這樣更容易用於你的目的:https://pypi.python.org/pypi/selenium – user353255