我正在尝试使用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();
}
答案 0 :(得分:0)
JSoup不是浏览器,它是一个简单的HTML解析器库。通过DOM操作更改您提到的值将无法执行您想要的操作。我假设是'改变过去游戏的价值#34;到5'你的意思是你想要在浏览器中进行这些更改时检索服务器发送给浏览器的HTML,对吗?
为了实现您的目标,您必须分析网站的运作方式。我快速浏览一下,发现当你改变过去的游戏时#34; 5触发POST请求。查看浏览器的开发工具即可查看。
JSoup完全能够将这样的帖子请求发送到网络服务器并接收结果HTML。这应该包含你想要的。
请阅读有关如何在JSoup中汇总POST请求并分析Web服务器需要提供哪些参数的内容。这应该会让你获得成功。