首先:我对AJAX或类似内容一无所知。请记住这一点。
问题在上面。我正在尝试解析网站上的信息(http://www.sportstats.com/soccer/germany/bundesliga/)。更具体:我想解析<table id="nextMatches_0">
所持有的信息。我发现这是我迄今为止使用的库不可能的:Jsoup,因为网站从外部获取信息。到目前为止,我认为这是表格中的AJAX。
虽然我没有找到解析我想要的信息的方法,但是做网站做同样的事情并向服务器发送请求会很棒。但我不知道如何做到这一点,这就是我寻求帮助的原因。
非常感谢:)
答案 0 :(得分:1)
听起来您正在尝试对一些数据进入网页进行反向工程,以便您可以弄清楚如何从Javas应用程序中获取相同的数据。到目前为止,您已经得出结论,数据本身不在HTML中,因此您的猜测是网页中的某些脚本通过Ajax调用将数据放入页面。
首先,要确认是否是这种情况,您可以做两件事:
在网络浏览器中显示该页面并执行查看/来源。检查页面的原始HTML,看看您想要的内容是否在那里。如果是,那么您可以直接从服务器请求获取该页面,解析HTML然后获取您的内容。如果您想要的内容不在页面的原始HTML中,请转到步骤2.
打开Chrome调试器。切换到网络选项卡。然后,将您的页面加载到浏览器中。检查网络选项卡中的请求,找到列出其&#34;类型&#34;的所有请求。 as&#34; xhr&#34;。这些将是来自该页面的ajax请求。我在该页面中看到至少3个xhr请求。然后检查每个xhr请求,看看它是否是请求和接收您感兴趣的特定数据的请求。如果找到它,那么您可以研究请求是如何形成的,以查看是否可以将相同的请求发送到同一个源来自您的Java应用程序。
如果您在第一步中发现数据实际上是在HTML中,那么您只需从Java请求该链接,获取HTML,将其放入HTML解析器,然后在解析中找到您想要的内容页。
如果在第二步中,您得出结论是有一个Ajax调用正在获取您想要的数据,那么您需要查看请求是如何形成的以及它发送到哪个主机并从您的请求中复制该类型的请求Java应用程序,以查看是否可以获取相同的数据。我看到该页面包含一些正在获取JSON的Ajax调用。如果其中一个是您想要的,那么您将在Java应用程序中解析JSON,以便您可以从Java代码中访问数据。
哦,我建议您阅读网站上的许可信息,看看您实际上可以与其他人的内容或Ajax电话做什么。