【发布时间】:2019-05-24 19:53:48
【问题描述】:
我正在为在线游戏创建一个不和谐机器人,其中一个机器人的功能是使用网络爬虫获取物品信息。
我的问题是,当我使用 UTF-8 编码的 URL 时,Jsoup 由于某种原因无法正常工作。
我确实尝试遍历具有相同类名的所有元素,但这根本不起作用。那里似乎完全没有班级。
String url = "http://coryn.club/item.php?name=";
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(arguments.get(0));
for (int i = 1; i < arguments.size(); i++)
stringBuilder.append(" ").append(arguments.get(i));
url = url + URLEncoder.encode(stringBuilder.toString(), "UTF-8");
System.out.println(url);
Document document = Jsoup.connect(url).get();
Element table = document.getElementsByClass("table table-striped").first();
System.out.println(table == null ? "Table is null" : "Table is not null"); //returns that the table is null only on the %27 link
例如,网址:http://coryn.club/item.php?name=dark+general 完全可以使用,但网址http://coryn.club/item.php?name=dark+general%27s 则不行。唯一的区别是接近尾声的 %27。
我确实得到了一个带有“table table-striped”类元素的空值。
请注意,我在两个 URL 中使用相同的代码,但只有第一个有效。
还要注意,如果您确实在浏览器中打开该页面,它会起作用,并且您仍然会看到带有检查元素的 HTML 数据。
【问题讨论】: