【问题标题】:Crawl td values from tr and table in jsoup without using class在不使用类的情况下从 jsoup 中的 tr 和 table 爬取 td 值
【发布时间】:2016-01-12 09:06:47
【问题描述】:

我正在尝试使用 jsoup 从网站中的 td 抓取值。我是 jsoup 的新手,所以请告诉我该怎么做。此外 td 或 tr 没有类或 id 可以从中获取值,所以请帮助我。 html如下,

<table cellpadding="4" id="ctl00" style="color:#333333;width:100%;"> 
 <tbody>
  <tr align="center" style="color:White;background-color:#990000;"> 
   <th scope="col"></th>
   <th scope="col"></th>
   <th scope="col"></th>
   <th scope="col"></th>
   <th scope="col"></th>
   <th scope="col"></th> 
  </tr>
  <tr align="center" style="color:#333333;background-color:#F7F6F3;"> 
   <td>1</td>
   <td>2</td>
   <td>3</td>
   <td>4</td>
   <td>5</td>
   <td>6</td> 
  </tr>
  
  

我需要输出为 1 2 3 4 5 6 请帮我弄到这个。

【问题讨论】:

  • 你想在哪里输出?在javascript变量中?还是您想将其作为字符串发送到服务器端?这就是你将java 作为标签的原因吗?你能说得更具体点吗?
  • 是的,我在这里使用 java,如果我可以将它存储在字符串中就很好了。抱歉没有具体说明。

标签: java html web-scraping html-table jsoup


【解决方案1】:

您可以通过连接URL获得所需的页面。获得文档后,查找元素“td”(根据您需要使用 TD/td,如果文本在上/下,则通过将其打印到控制台来检查文档)。然后获取文本。

Document document = Jsoup.connect("http://www.google.com").get();
Element table = document.getElementById("tableId");
Elements tds = table.getElementsByTag("td");
for(Element td : tds)
{
    System.out.println(td.text());
}

【讨论】:

  • 但是在给定的html之上有不止一个td,如何具体到这里给出的特定td。
  • 你也有很多表,但我可以通过使用表 id 爬到这个表。但在那之后我无法爬到我需要输出的那个 td。
  • 我已编辑代码以从您拥有 ID 的表的 TD 中获取数据。如果这不是您要查找的内容,那么您可以粘贴您拥有的 HTML 文档吗?
  • 非常感谢,我得到了价值。但是在这里我想将 1 存储在一个字符串中,将 2 存储在另一个字符串中,就像在一个单独的字符串中的所有其他值一样。请帮帮我。
  • 您可以通过将它们添加到列表仪式中来做到这一点吗?因此列表输出将是 (1,2,3,4,5,6) 在迭代列表时您将拥有所有值。
猜你喜欢
  • 2012-06-13
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
相关资源
最近更新 更多