如何网络抓取自动完成文本字段

how to web scrape autocompleting textfield

我正在尝试填写网站表格 (compareraja.in) 以使用 java 搜索和比较手机。我目前正在使用 jaunt 库,但我不知道如何填充自动完成文本字段,我想要的是 select 在我将某些首字母应用到文本字段后自动完成列表中的特定项目. jsoup 或 jaunt 或 htmlunit 或任何其他库是否可行?

如果是,哪个是最好和最简单的选择?还有怎么办?

我的线索是,首先您必须检索在您应用特定字母后出现的整个自动完成列表。如果你在e中打开网页。 G。 Chrome,进入开发者工具F12,网络选项卡,然后你会看到每次在文本字段中输入一个字母,对应的XML HTTP R请求已记录在列表中。

例如,我输入了 "htc ":

在“网络”选项卡上,最后一个 XHR Header 部分包含所有必要的查询参数:

响应部分显示接收到的数据,实际上显示在该自动完成列表中:

因此,您可以将 GET XHR 设为 URL http://www.compareraja.in/autocompletedata.ashx?q=htc+&c=mobiles&limit=150(您甚至可以单击此 link 或将其粘贴到浏览器的地址行进行测试),您的 URL-encoded 应放置首字母而不是 htc+。对我来说,没有 timestamp 参数也能正常工作。

之后很容易解析响应,将文本拆分为 \n; 个字符,并用所选项目填充文本字段。