Java Jsoup-无法按类名获取节点
我正在尝试取消此链接: 但我有时会得到一个空集合,其中包含以下代码:Java Jsoup-无法按类名获取节点,java,ajax,web-scraping,jsoup,Java,Ajax,Web Scraping,Jsoup,我正在尝试取消此链接: 但我有时会得到一个空集合,其中包含以下代码: String cur = http://www.soccerbase.com/tournaments/tournament.sd?tourn_id=1159; Document doc = Jsoup.connect(cur).get(); Elements table = doc.getElementsByClass("soccerContent"); System.out.println(table); 输出有时是空的,
String cur = http://www.soccerbase.com/tournaments/tournament.sd?tourn_id=1159;
Document doc = Jsoup.connect(cur).get();
Elements table = doc.getElementsByClass("soccerContent");
System.out.println(table);
输出有时是空的,我不知道为什么。但是,doc.getElementsByTag(“div”)
始终有效。所以我想知道getElementsByClass
是否已损坏
我已经在请求之间设置了1秒的间隔,并且它们的robots.txt
没有说明任何关于user\u agent
,所以黑名单应该不是问题
澄清:这些碎片是学校的项目,不是商业用途
编辑:
我发现问题是,由于某种原因,我的请求被重定向到另一个页面。如果我先在浏览器中打开页面,然后发送请求,它将返回所需页面,甚至不会尝试重定向我。有人能解释为什么会这样吗?谢谢
我有数百页要抓取,所以手动逐个打开可能不是最好的选择 通过执行XHR请求yourself@JEY嘿,事实证明AJAX不是问题所在。由于某种原因,该网站返回给我一个缓存版本。我已经更新了描述。你知道为什么会这样吗?谢谢。只需添加
缓存控制,无缓存
和缓存存储,无存储
。Jsoup有连接
类,它为您的请求指定头。如果有效,请告诉我。@lkerKorkut谢谢你的回复。我已经添加了标题,但是我无法测试它,因为还有另一个问题。以前对于那些未访问的页面,它只返回一个缓存页面,但现在它返回一个空页面(只返回基本html
、head
和body
标记)。它的行为方式是带或不带标题。@lkerKorkut好的,现在行为正常……为什么它连续返回空页面仍然是个谜,但现在它返回一个页面,但仍然是缓存版本。这是我的codeLConnection con=Jsoup.connect(url).header(“缓存控制”、“无缓存”).header(“缓存存储”、“无存储”)代码>