java JSoup我在这段代码中犯了什么错误?
我试图通过JSoup从HTML中的h2标记中提取文本,但由于某些原因,它无法工作。任何帮助都将不胜感激,谢谢
HTML代码:
<div id="searchTemplate" class="searchTemplate listLayout so_us_en" >
<div id="topDynamicContent">
<div id="s-result-info-bar" class="a-row a-spacing-base searchUndoAUIHacks"><div id="s-result-info-bar-content" class="a-row"><div class="a-column a-span8 a-spacing-none"><div class="s-first-column">
<h2 id="s-result-count" class="a-size-base a-spacing-small a-spacing-top-small a-text-normal">1-16 of 121 results for <span><span class="a-color-state a-text-bold">"rx 390"</span></span></h2></div>
Java代码:
Document doc = Jsoup.connect("https://www.amazon.com/s/ref=nb_sb_ss_c_1_6?url=search-alias%3Daps&field-keywords=rx+390&sprefix=rx+390%2Caps%2C166&crid=2MTUBA4KGNY06").get();
String link= doc.select("div.searchTemplate.listLayout.so_us_en")
.select("div[id= topDynamicContent]")
.select("div.a-row.a-spacing-base.searchUndoAUIHacks")
.select("div.a-row")
.select("div.a-column.a-span8.a-spacing-none")
.select("div.s-first-column")
.select("h2.a-size-base.a-spacing-small.a-spacing-top-small.a-text-normal").first().text();
# 1 楼答案
正如你在评论中告诉我们的,你正在开发一款Android应用程序。因此可能会有一些错误(我自己也经历过)
首先,你有没有检查,你是在一个独立的线程上运行的?Android在主用户界面上的每个网络线程都使用线程,这有点令人讨厌。 参考请参见此处:https://developer.android.com/reference/android/os/NetworkOnMainThreadException.html
您可以在代码中执行以下操作:
尽管如此,正如@saka1029所提到的,代码通常是正确的,在Windows或Linux系统下运行良好