gpt4 book ai didi

java - 使用 JSoup 转到 aspx 表单上的下一页

转载 作者:太空狗 更新时间:2023-10-29 13:04:00 25 4
gpt4 key购买 nike

我正在尝试使用 JSoup 转到 aspx 表单上的下一页。

我可以自己找到下一个按钮。我只是不知道该怎么办。

想法是,对于那个特定的表单,如果下一个按钮存在,我们将模拟点击并转到下一页。但是只要我们到达下一页,除了模拟点击之外的任何其他解决方案都可以。

进入下一页后,我还需要更新结果。

// Connecting, entering the data and making the first request

...

// Submitting the form
Document searchResults = form.submit().cookies(resp.cookies()).post();

// reading the data. Everything up to this point works as expected

...

// finding the next button (this part also works as expected)
Element nextBtn = searchResults.getElementById("ctl00_MainContent_btnNext");

if (nextBtn != null) {
// click? I don't know what to do here.
searchResults = ??? // updating the search results to include the results from the second page
}

页面本身是 www.somePage.com/someForm.aspx,所以我不能使用此处所述的解决方案:

Android jsoup, how to select item and go to next page

我找不到任何其他建议。

有什么想法吗?我错过了什么? JSoup 甚至可以模拟点击吗?文档对此只字不提。但我确信人们能够浏览这些类型的表单。

此外,我正在使用 Android,所以我不能使用 HtmlUnit,如下所述:

importing HtmlUnit to Android project

谢谢。

最佳答案

这不是 Jsoup 的工作!Jsoup 是一个带有良好 DOM API 的解析器,它允许您处理乱七八糟的 HTML,就好像它是格式正确的,没有错误和废话。 p>

在您的特定情况下,您可能能够通过查找链接和递归检索 HTML 页面,直接从您的应用中抓取目标网站。有点像

private void scrape(String url) {
Document doc = Jsoup.connect(url).get();
// Analyze current document content here...
// Then continue
for (Element link : doc.select(".ctl00_MainContent_btnNext")) {
scrape(link.attr("href"));
}
}

但在一般情况下,您想要执行的操作需要 Jsoup 提供的更多功能:一个用户代理能够使用可编写脚本的 API 解释 HTML、CSS 和 Javascript,您可以从您的应用程序调用该 API 来模拟点击。例如 Selenium :

WebDriver driver = new FirefoxDriver();
driver.findElement(By.name("next_page")).click();

Selenium 不能 bundle 在 Android 应用程序中,因此我建议您将 Selenium 代码放在服务器上并使其可以通过一些 REST API 访问。

关于java - 使用 JSoup 转到 aspx 表单上的下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51048103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com