【发布时间】:2016-03-15 19:43:53
【问题描述】:
我正在尝试解析网页 padalvarigal.com 以获取页面中所有结果的 URL(以绿色突出显示)。但是当我使用 Jsoup 解析网页时,我在打印 doc 对象时没有得到整个 div。 div id "hits" 中的 URL 和标题也被替换为我在 console 中打印的 doc 对象中的 "{{{URL}}}"、"{{{Title}}}"。在实际页面 中,在六个类名命中的 div 中,我在解析页面中只得到一个名为 hit 的 div。
我也尝试将 maxBodySize() 设置为 0 以获取整个网页结果,但仍然遇到同样的问题。请指导我出了什么问题。
package com.balaji.parse;
import org.jsoup.Jsoup;
import org.jsoup.Connection;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class ParseHTML {
private static final String URL = "http://www.paadalvarigal.com/search/?q=naanum%20rowdythan";
public static void main(String args[]) {
//parseFromString();
parseFromHTML();
}
private static void parseFromString() {
String html = "<html><head><title>First parse</title></head><body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
System.out.println(doc.head());
System.out.println(doc.title());
System.out.println(doc.body());
//To Parse only body tag and elements - adds HTML and Body tags.
System.out.println("Parsing only Body");
Document doc2 = Jsoup.parseBodyFragment(html);
System.out.println(doc2);
}
private static void parseFromHTML() {
try {
Connection con = Jsoup.connect(URL);
con.timeout(5000);
con.header("Accept-Encoding", "gzip, deflate");
con.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0");
con.maxBodySize(0);
Document doc = con.get();
System.out.println(doc.head());
System.out.println(doc.title());
System.out.println(doc);
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
P.S:我是 JSoup 的新手,我正在努力学习个人项目的框架。
【问题讨论】:
标签: java http automation web-scraping jsoup