Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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中从Wikipedia中选择表?_Java_Jsoup - Fatal编程技术网

Java 如何在jsoup中从Wikipedia中选择表?

Java 如何在jsoup中从Wikipedia中选择表?,java,jsoup,Java,Jsoup,我试图用java编写一个应用程序,它使用在这里获得的信息。具体来说,我需要一个瑞士城市的列表,我必须从链接中的表格中提取。我需要使用Jsoup来做这件事,但我在做这件事时遇到了一些麻烦。具体来说,我的程序无法“查看”或选择此特定表。我试过几种方法,花了好几个小时想弄明白,但都没有用。我已经成功地选择了页面底部的表格,关于“瑞士文章”和“欧洲城市列表”,带有 但是,出于某种原因,它似乎“跳过”了我要找的桌子。(对于表[0]-表[2],数组似乎有空表,表[3]是“瑞士文章”表。)Chrome给我的“

我试图用java编写一个应用程序,它使用在这里获得的信息。具体来说,我需要一个瑞士城市的列表,我必须从链接中的表格中提取。我需要使用Jsoup来做这件事,但我在做这件事时遇到了一些麻烦。具体来说,我的程序无法“查看”或选择此特定表。我试过几种方法,花了好几个小时想弄明白,但都没有用。我已经成功地选择了页面底部的表格,关于“瑞士文章”和“欧洲城市列表”,带有

但是,出于某种原因,它似乎“跳过”了我要找的桌子。(对于表[0]-表[2],数组似乎有空表,表[3]是“瑞士文章”表。)Chrome给我的“复制选择器”选项也不起作用,因为输出是一个size=0的数组,我在尝试解析它时从中得到了一个空指针异常。我对HTML和Jsoup非常陌生,无法理解我的问题所在。

您尝试过:

doc.select("div.mw-content-text > table.wikitable");
应根据jsoup的文档页面工作:

您可以进一步查看它:)

使用此选择器-

doc.select(".wikitable");
还可以使用与浏览器匹配的
用户代理
字符串,以确保在浏览器和应用程序中获得相同的结果,如下所示-

Document doc = Jsoup.connect("https://en.wikipedia.org/wiki/List_of_cities_in_Switzerland")
            .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0")
            .get();
Elements table = doc.select(".wikitable");

你可以看看医生:)不小心删除了我的评论。不管怎么说,TDG的代码是有效的。我已经尝试过类似的东西,因此我“相当肯定”我已经尝试过了,但没有成功。根据文档,我所尝试的,正如您的解决方案一样,应该是可行的。这就是让我困惑的地方。无论如何,谢谢。:)你应该使用更严格的内容。“.wikitable”选择任意一个表,这样wikipedia页面可能会被更新(实际上是有用的),如果添加了任何表,它将被破坏。代码可以工作。虽然我同意@Cukic0d所说的,但应用程序做了我希望它做的事情。它适用于这个项目,我怀疑在当前项目中是否会有另一个足够重要的表格,但事实上,解决方案并不完美。当然,也就是说,我有信心我能使它围绕这一点工作。我的问题主要是返回的null元素,而不是在返回的表之间进行选择。
Document doc = Jsoup.connect("https://en.wikipedia.org/wiki/List_of_cities_in_Switzerland")
            .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0")
            .get();
Elements table = doc.select(".wikitable");