如何用Java重建AJAX请求



首先:我对AJAX或类似的东西一无所知。请记住这一点。

问题在上面。我正在尝试解析网站上的信息(http://www.sportstats.com/soccer/germany/bundesliga/)。更具体地说:我想解析<table id="nextMatches_0">所持有的信息。我发现这在我现在使用的图书馆Jsoup中是不可能的,因为网站从外部获取信息。到目前为止,我认为AJAX才是最重要的。

虽然我没有找到解析我想要的信息的方法,但如果能像网站一样向服务器发送请求,那就太好了。但我不知道我该怎么做,这就是我寻求帮助的原因。

非常感谢:)

听起来你正在试图对一些数据如何进入网页进行逆向工程,这样你就可以弄清楚如何从你的Javas应用程序中获得相同的数据。到目前为止,您已经得出结论,数据本身不在HTML中,因此您的猜测是网页中的某个脚本正在通过Ajax调用将数据放入页面中。

首先,为了确认是否是这样,你可以做两件事:

  1. 在web浏览器中打开该页面,然后执行"查看/源代码"。检查页面的原始HTML,看看您想要的内容是否在其中。如果是这样,那么您只需从服务器直接请求即可获得该页面,解析HTML,然后获取内容。如果您想要的内容不在页面的原始HTML中,请转到步骤2。

  2. 打开Chrome调试器。切换到"网络"选项卡。然后,将您的页面加载到浏览器中。检查网络选项卡中的请求,找到所有将其"类型"列为"xhr"的请求。这些将是来自该页面的ajax请求。我在该页面中看到至少3个xhr请求。然后检查每个xhr请求,看看它是否是请求和接收你感兴趣的特定数据的请求。如果你找到了它,那么你可以研究请求是如何形成的,看看你是否可以从Java应用程序向同一源发送相同的请求。

如果在第一步中,您发现数据实际上在HTML中,那么您可以从Java请求该链接,获取HTML,将其放入HTML解析器,然后在解析的页面中找到您想要的内容。

如果在第二步中,您得出结论,有一个Ajax调用正在获取您想要的数据,那么您需要了解请求是如何形成的,以及它被发送到什么主机,并从Java应用程序中复制这种类型的请求,以查看是否可以获得相同的数据。我看到该页面包含几个正在获取JSON的Ajax调用。如果其中一个是您想要的,那么您将在Java应用程序中解析JSON,这样您就可以访问Java代码中的数据。


哦,我建议阅读网站上的许可信息,看看你实际上可以对别人的内容或Ajax调用做什么。

最新更新