Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用Jsoup时出现异常输出_Java_Jsoup - Fatal编程技术网

在Java中使用Jsoup时出现异常输出

在Java中使用Jsoup时出现异常输出,java,jsoup,Java,Jsoup,在尝试使用Jsoup从Wikipedia提取文本时,我得到了以下输出: 我没有足够的代表来发布图片,因为我是这个网站的新手,但基本上是这样的: []{k[]q[]f[]d[]d etc.. 以下是我的部分代码: public static void scrapeTopic(String url) { String html = getUrl("http://www.wikipedia.org/" + url); Document doc = Jsoup.parse(h

在尝试使用Jsoup从Wikipedia提取文本时,我得到了以下输出:

我没有足够的代表来发布图片,因为我是这个网站的新手,但基本上是这样的:

[]{k[]q[]f[]d[]d  etc..
以下是我的部分代码:

public static void scrapeTopic(String url)

{
    String html = getUrl("http://www.wikipedia.org/" + url);



    Document doc = Jsoup.parse(html);

    String contentText = doc.select("*").first().text();

    System.out.println(contentText);


}
它似乎获取了所有信息,但格式错误

我感谢你给予的任何帮助
提前谢谢

这里有一些建议给你。获取普通网页时,不需要像cookie一样设置HTTP头字段,用户代理只需调用:

Document doc = Jsoup.connect("givenURL").get();
此函数使用GET请求读取网页。当您使用
*
选择元素时,它返回任何元素,即文档的所有元素。因此,调用
doc.select(“*”).first()
将返回
#root
元素。尝试打印以查看:

System.out.println(doc.select("*").first().tagName()); // #root
System.out.println(doc.select("*").first());  // will print the whole document, 
System.out.println(doc); //print the whole document, the above action is pointless
System.out.println(doc.select("*").first()==doc); 
               // check whither they are equal, and it will print TRUE
我假设您只是想了解一下这个API,虽然它功能强大,但是一个好的开始应该是尝试通用的文档操作函数,例如,
doc.getElementsByTag()


然而,在我的本地机器上,我成功地获取了文档并使用
getURL()
函数对其进行了解析

Jsoup不会返回图片而是文本,当然你可以发布更多返回的文本。当我复制并粘贴到这里时,它会变成完全不同的东西。这就是为什么我试图上传一张输出的图片,请上传返回的图片text@Hovercraft,他的getUrl打开一个目录并获取页面,半小时前他问过。@Sage:好的,谢谢。为此,我通常使用
Jsoup.connect(…).get()