如何使用Jsoup从网站获取内容

时间:2013-02-15 09:08:06

标签: java jsoup

我想从网站上获取数据。使用此代码:

@WebServlet(description = "get content from teamforge", urlPatterns = { "/JsoupEx" })
public class JsoupEx extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private static final String URL = "http://www.moving.com/real-estate/city-profile/results.asp?Zip=60505";

    public JsoupEx() {
        super();
    }

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        Document doc = Jsoup.connect(URL).get();
        for (Element table : doc.select("table.DataTbl")) {
            for (Element row : table.select("tr")) {
                Elements tds = row.select("td");
                if (tds.size() > 1) {
                    System.out.println(tds.get(0).text() + ":"
                            + tds.get(2).text());
                }
            }
        }
    }
}

我正在使用jsoup解析器。运行时,我没有任何错误,只是没有输出。

请帮忙。

2 个答案:

答案 0 :(得分:4)

使用以下代码

public class Tester {
    private static final String URL = "http://www.moving.com/real-estate/city-profile/results.asp?Zip=60505";


    public static void main(String[] args) throws IOException {
        Document doc = Jsoup.connect(URL).get();
        System.out.println(doc);

    }

}

我得到一个java.net.SocketTimeoutException:读取超时。我认为您尝试抓取的特定URL对于Jsoup来说太慢了。在欧洲,我的联系可能比你的慢。但是,您可能希望在AS的日志中检查此异常。

通过将超时设置为10秒,我可以下载并解析文档:

Connection connection = Jsoup.connect(URL);
connection.timeout(10000);
Document doc = connection.get();
System.out.println(doc);

我得到了剩下的代码:

人口:78413

1990年以来的人口变化:53.00%

人口密度:6,897

男性:41137

女:37278

.....

答案 1 :(得分:0)

thanx Julien,我尝试使用以下代码,得到SocketTimeoutException。代码是

Connection connection=Jsoup.connect("http://www.moving.com/real-estate/city-   
profile/results.asp?Zip=60505");
connection.timeout(10000);
Document doc = connection.get();
System.out.println(doc);