我用jsoup返回html页面中没有
标签

Jerk_Lee 2016-03-01 08:23:15
我是搞生物信息的,需要在NCBI上解析一些数据,下面是我的代码
public class JsoupTest {
/**
* 爬取和解析HTML
* @author hehe
* @throws IOException
* @time 2016.3.1
* */
public static void getHtml(String s) throws IOException{
URL url=new URL(s);
Document doc = Jsoup.parse(url, 5000);
System.out.println(doc);
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
getHtml("http://www.ncbi.nlm.nih.gov/protein/18857725");
}

}


页面中明显有<pre>标签,而且里面的内容也是我想要的,但是就是输出不出来
下图是NCBI页面里的内容

下面的控制台内容是我输出的内容


希望大牛不吝赐教,小弟不胜感激
...全文
851 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35840106 2016-12-16
  • 打赏
  • 举报
回复
我知道我错在哪里了,我解析的URL不对,我只用了浏览器中的那个URL,应该用下图所示的URL

你说的下图标中的URL,这个URL你是怎么找到的?
你是怎么确定就是 这个文件(viewer.fcgi?vil)里面的URL
用你的方法我没找到啊啊。。

热心的码农 2016-10-25
  • 打赏
  • 举报
回复
人家是动态加载的
Jerk_Lee 2016-03-03
  • 打赏
  • 举报
回复
我知道我错在哪里了,我解析的URL不对,我只用了浏览器中的那个URL,应该用下图所示的URL
还是非常感谢您的热心解答
rickylin86 2016-03-02
  • 打赏
  • 举报
回复
恩恩。你说的这个问题也是我之前遇到的问题.不过需要后面重新学习完JS后看看有没对应的方法解决.所以我现在用的Jsoup和HttpClient都只是针对不含JS动态加载和处理的内容.
Jerk_Lee 2016-03-02
  • 打赏
  • 举报
回复
我要的那些内容是执行JS之后的东西,貌似jsoup抓取不到。。
rickylin86 2016-03-02
  • 打赏
  • 举报
回复
恩。如果这样的话那么就按照Jsoup解析出来的结果来获取你需要的内容吧.
Jerk_Lee 2016-03-02
  • 打赏
  • 举报
回复
首先非常感谢您能回复我的问题,看了您的答案我用httpclient写了一下,还是得不到想要的标签
rickylin86 2016-03-01
  • 打赏
  • 举报
回复
用Apache的HttpClient.execute(HttpPost)提取出InputStream再用Jsoup解析. 原因有可能因为Jsoup用的是get方法访问对应的URL,而有些站点需要用Post方式来访问.所以获取到的HTML代码不一样. 另外Jsoup会对不规范的HTML修正,所以也有可能是这个原因,不过理论上不会删除标签的.最好是用Get和Post两种方式来来测试下看看对应的Document是否一致.

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧