我确保使用浏览器的用户代理,它仍然提供不同的HTML。我还尝试使用Jsoup.parse(Url,int)而不是Jsoup.connect(String)。两次尝试:
Document doc = Jsoup.connect("https://www.bulq.com/lots/search/?category=Consumer%20Electronics&condition%5B%5D=Brand%20New")
.userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1Safari/605.1.15")
.get();
和
URL mainUrl = new URL("https://www.bulq.com/lots/search/category=Consumer%20Electronics&condition%5B%5D=Brand%20New");
Document doc = Jsoup.parse(mainUrl, 6000);
我在“元素”选项卡中使用Safari的“显示页面源”。我试图在下面复制一些HTML,但是格式无法使用:(所以这是一个小例子。
示例:Jsoup HTML中的div类之一是:
div class="row ng-cloak" ui-view
Safari HTML为:
div class="row ng-scope" ui-view
答案 0 :(得分:1)
我认为您可以尝试使用jsoup发送User-Agent
作为标头
Document doc = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.7 (KHTML, like Gecko) Version/9.1.2 Safari/601.7.7")
.get();
答案 1 :(得分:0)
您可以尝试使用以下方法获取页面:
URL u = new URL("https://www.google.com/"); //replace https://www.google.com/ with your url
InputStream in = u.openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder result = new StringBuilder();
String line;
while((line = reader.readLine()) != null) {
result.append(line);
}
System.out.println(result.toString());
那不需要图书馆,也许那会返回确切的页面...
答案 2 :(得分:0)
如果您正在从“元素”选项卡中查看实时DOM,则这些类中的某些类可能由于JavaScript而有所不同,因为Jsoup在从服务器中获取原始HTML时将无法运行。
答案 3 :(得分:0)