【问题标题】:java: performing website search and getting the resultjava:执行网站搜索并获取结果
【发布时间】:2013-05-05 11:28:05
【问题描述】:

首先我要说,我不希望任何人为我工作。

我想制作一个在特定网站上搜索数据的 Java 应用程序。它看起来像这样:

  1. 我会在我的 jTextField 中输入一个关键字,然后我会按下我的 OK 按钮
  2. 按下确定按钮后,我的应用程序将向该站点发送请求并对其执行搜索。通过搜索,我的意思是在带有文本字段和搜索按钮的网站上进行常规搜索。不是 ctrl+f 搜索。
  3. 搜索网站后,我的应用程序将读取结果并将其存储在一个数组中。

我该如何开始? 在该网站上搜索如下所示:

 <input id='searchText' type='text' name='text' value='zboží nebo kód' title='title'/>
 <input id='searchButton' type='submit' value='Hledej' />

【问题讨论】:

    标签: java http http-post http-get web-search


    【解决方案1】:

    您将需要检查整个 html 表单或仅使用 Firebug 的“网络”选项卡或 Firefox 或 Chrome 中的等效内置工具检查请求,以了解是否有其他字段、URL 是什么以及如果站点需要 HTTP GET 或 HTTP POST 请求。

    然后您需要使用 HTTP 客户端类(我想到 Apache HttpClient)发出这样的请求。

    您将获得一个网站,您需要使用 DOM 解析器或正则表达式对其进行解析。

    【讨论】:

    • 我并没有真正得到那个用于 FireFox 的“Firebug”插件的部分。即使我知道我需要的那个“id”,我是否必须搜索该网站上是否还有其他输入字段?
    • 您需要提出搜索功能将接受的请求。如果它对只包含“文本”字段的请求感到满意,那么您就完成了(只需要您可以在 HTML 中找到的表单方法)。如果有其他字段并且网站实际需要它们,您可以使用 firebug 轻松找到它们(以及它们可接受的值)。
    • 好的,非常感谢:)。现在我可以在该站点上执行搜索,并使用 bufferReader 我得到响应。问题是,我得到了整个 html。现在我需要在那个 html 源代码中搜索一个特定的词并读取该词旁边的值。有可能吗?
    • 是的。正如我所说,您将需要使用 HTML 解析器或正则表达式。
    • 谢谢。还有一个问题。我需要做的是在该网站上检查他们拥有的商品并将其与我的数据库进行比较。这意味着我需要在短时间内执行多个请求。每分钟来自一个 IP 的请求是否有任何限制?
    猜你喜欢
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多