使用 Jsoup 浏览使用函数而不是 url 的网页

Navigating through a webpages that uses function instead of url with Jsoup

<div class="pb_ft clearfix" style="width:500px;clear:both;margin-top:50px;">
  <div class="turn_page" id="list_navigator" style="margin-left:200px;">
    <ol style="width:980px;">
      <li style="width:100px;border:0">12129 Pages</li>
      <li class="turn_pre"><a href="#" onclick="PageContext.PageNav.goPre();return false;">Last Page</a></li>
      <li><a href="#" onclick="PageContext.PageNav.go(1,12129);return false;">1</a></li>
      <li><a href="#" onclick="PageContext.PageNav.go(2,12129);return false;">2</a></li>
      <li><a href="#" onclick="PageContext.PageNav.go(3,12129);return false;">3</a></li>
      <li><a href="#" class="current">4</a></li>
      <li><a href="#" onclick="PageContext.PageNav.go(5,12129);return false;">5</a></li>
      <li><a href="#" onclick="PageContext.PageNav.go(6,12129);return false;">6</a></li>
      <li><a href="#" onclick="PageContext.PageNav.go(7,12129);return false;">7</a></li>
      <li class="turn_next"><a href="#" onclick="PageContext.PageNav.goNext();return false;">Next Page</a></li>
    </ol>
  </div>
  <!--Next Page-->
</div>

它使用了一个 href = "#" 然后是一个函数 "PageContext.PageNav.go(2, 12128).

似乎通过调用 JavaScript 函数总共加载了 12128 页。

浏览这些网页的最佳方式是什么?我应该更好地模拟按钮点击还是我可以调用网站的功能使其翻页。

Jsoup 是一个 HTML 解析器 而不是浏览器。话虽如此,单击菜单选项后,仍然可以查看 url 中返回的内容。

如果它是可预测的,您可以将所需的参数附加到 URL 以使用 Jsoup 抓取。如果没有,你将不得不使用像 Selenium 这样的东西来循环浏览菜单,然后用 Jsoup 解析每个页面。

您也可以尝试在浏览器中禁用 Javascript 以查看网站如何处理它。它可以带你到一个不使用 js 的导航。值得一试。