如何使用Java和Jsoup阅读网站的特定行?

时间:2016-05-08 07:59:29

标签: java jsoup

首先,我要感谢大家提前花时间提供帮助

接下来,我想指出我已经阅读过answer 当我在stackoverflow上检查谷歌浏览器中的元素时,它真的很容易理解,但在下面列出的网页上有点凌乱

我希望能够从此网页上列出的公司加载信息 http://www.manta.com/mb_51_ALL_CVZ/carlstadt_nj?pg=1

最后,这是我目前的代码

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Main {
public static void main(String[]args)throws Exception{
    String url = "http://www.manta.com/mb_51_ALL_CVZ/carlstadt_nj?pg=1";
    Document doc = Jsoup.connect(url).get();

    String address = doc.select("").text();
    String telephone = doc.select("").text();
    String description = doc.select("").text();
    // want to retrieve the address, the telephone number and the description of the 
    // company listen on the website that i provided

}
}

1 个答案:

答案 0 :(得分:1)

首先,使用<nav id="nav-below" class="post-navigation" role="navigation"> <div class="nav-next"> <div id="arrow-right"></div> <a rel="next" href="http://localhost/wordpress/?p=369"> </div> <div class="nav-previous"> <div id="arrow-left"></div> <a rel="prev" href="http://localhost/wordpress/?p=104"> </div> </nav> 字符串,因此您在程序中获得的页面与浏览器中的页面相同 -

User Agent

整个表格的选择器为Jsoup.connect(url) .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0") .get();
并且每行的selctor为ul.list-group:nth-child(4),其中ul.list-group:nth-child(4) > li:nth-child(X) > div:nth-child(1)是介于1和行数之间的数字。
在每一行内,您可以使用浏览器轻松找到地址,电话等选择器。例如 - 第一行的地址由X给出 只是循环通过。所有行并提取您需要的任何内容。