我正在尝试使用JSoup抓取以下页面:
https://basketballmonster.com/PlayerRankings.aspx
但在浏览页面之前,我想将“过去的游戏”的值更改为5,并选择“所有玩家”而不是“顶级玩家”。
我已经能够用JSoup毫无问题地抓取很多页面,但是在抓取之前,我很难找到任何关于如何更改页面上的值的信息。我做了很多谷歌搜索,但似乎没有返回我想要的东西。
有没有人能告诉我如何做到这一点,或者甚至给出我正在尝试做的事情的适当术语?
以下是抓取代码的要点,但我不知道如何在实际抓取之前更新页面:
String URL = "https://basketballmonster.com/PlayerRankings.aspx";
try
{
Document doc = Jsoup.connect(URL).get();
Elements table = doc.getElementsByClass("dataTable");
for (Element row : table.select("tr"))
{
//Split rows into objects
}
}
catch (IOException e)
{
e.printStackTrace();
}
发布于 2018-02-17 18:24:19
JSoup不是浏览器,它是一个简单的超文本标记语言解析库。通过DOM操作更改您提到的值不会得到您想要的结果。我假设“将"Past Game”的值更改为5“的意思是,当在浏览器中执行这些更改时,您希望检索服务器发送给浏览器的HTML,对吗?
为了达到你想要的效果,你必须分析网站是如何运作的。我快速地看了一下,发现当你把“过去的游戏”改为5时,会触发一个POST请求。在浏览器的开发工具中查看这一点。
JSoup完全能够向and服务器发送这样的post请求并接收结果。这应该包含您想要的内容。
因此,请阅读有关如何在JSoup中组合POST请求并分析需要向fed服务器提供哪些参数的信息。这应该会带你走向成功。
https://stackoverflow.com/questions/48836816
复制相似问题