我正在尝试使用ajax从网站获取一些数据。
这是我的代码,带有ajax POST方法:
$(data).find('。col-md-9 .panel:lt(5)')。each(function(){ console.log($(this).find('。panel-body .sp-card td:eq(1)center')。text());
控制台:
Mc-Wars Network IP:mc-wars.org 投票 - 服务器信息 网站
我只想获得第一线:Mc-Wars Network
请帮忙!
这是html代码的图像。我正在抓。
这是刮擦后控制台的图像。 (我只需要第一行。
这是来自网站Im scraping的代码:
<div onclick="location.href='//www.serverpact.com/vote-20129 ';" class="panel panel-default sp-plane">
<div class="ribbon ribbon-small ribbon-blue">
<div class="banner">
<div style="font-size: 14px;text-align: center;" class="text">#1</div>
</div>
</div>
<div style="padding: 5px;" class="panel-body">
<table class="sp-card">
<tbody><tr>
<td style="font-weight: bold;vertical-align: middle;"><center><i class="fa fa-thumbs-up"></i><br>8384<br><br>#1</center></td>
<td style="font-weight: bold;vertical-align: middle;">
<center>
Mc-Wars Network<br>
<b>IP: mc-wars.org<br>
<a style="margin-top: 5px;" class="btn btn-primary btn-sm" href="//www.serverpact.com/vote-20129 ">Vote - Server info</a>
<a style="margin-top: 5px;" class="btn btn-success btn-sm" href="http://mc-wars.org">Website</a>
</b></center>
</td>
<td width="500px" class="hidden-xs">
<a href="http://mc-wars.org" target="_blank"><img style="margin-top: 7px;margin-bottom: 3px;border-radius: 4px;" src="http://www.serverpact.com/b/20129.gif" alt="Mc-Wars Network" class="img-responsive hidden-xs"></a>
<span style="font-size: 13px;">
McWars is a minecraft pvp based server where you will have to build a fortress for your team and destroy the other teams base to win. With more than 10 different classes to choose, youll love it.
</span>
</td>
</tr>
</tbody></table>
</div>
</div>
答案 0 :(得分:1)
可能text()组合了所有子文本节点。
您需要的是将文本节点检索为节点然后获取其内容。 See this post举个例子。
答案 1 :(得分:1)
这是一个片段,我将center
中td
的子节点导航到正确的文本节点。请注意,空格会创建一个子节点,因此例如在center
节点之前只有一个空白文本节点(在这种情况下并不重要,但它应该是您应该注意的事情)。
document.write('here you go:' + $('#firstDiv td:nth-child(2) center')[0].childNodes[0].textContent)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="firstDiv">
<table id="coolTable">
<tbody>
<tr>
<td>
</td>
<td>
<center>
The text I need!
<br>
<b>
The text I dont need!
</b>
</center>
</td>
</tr>
</tbody>
</table>
</div>
&#13;
答案 2 :(得分:1)
有办法做到这一点:
$(data).find('#firstDiv #coolTable').each(function () {
console.log($.trim($(this).find('tbody tr td:eq(1) center').contents()[0].nodeValue))});
答案 3 :(得分:1)
好的,你的问题已经发生了很大变化! 在.text()的末尾添加即可完成工作:
System.out.println
请注意,可以通过更改索引来捕获所有行,其中“0”是第一行,“1”是第二行,并且是连续的。