我正在使用JSOUP从网站上获取文档。
下面是我的代码
webPageUrl = https://mwcc.ms.gov/#/electronicDataInterchange
Document doc = Jsoup.connect(webPageUrl).get();
Elements links = doc.getElementsByAttribute("a[href]");
下面的代码行不起作用。它应该返回一个元素,但不会:
doc.getElementsByAttribute("a[href]")
有人可以指出我的代码中的错误吗?
答案 0 :(得分:2)
该页面似乎是Angular应用程序,这意味着它通过JavaScript脚本加载了部分(可能是全部或大部分)内容。
URL包含片段分隔符https://mwcc.ms.gov/
的事实已经很明显地表明了这一事实,因为如果您执行HTTP请求,那么该指示符之后的所有内容都会被切断(即未发送到服务器) ,因此实际的请求将仅为 lv_tracks.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
mSelectedTrackTitle.setText(stations[position]);
mSelectedTrackImage.setImageDrawable(ContextCompat.getDrawable(this,images [position]));
// or
mSelectedTrackImage.setImageResource(images [position]);
}
。
据我所知JSoup不支持运行JavaScript,因此您可能需要研究一种涉及更多的抓取工具(可能正在运行完整的浏览器引擎)。