【问题标题】:How can I use a URL's search engine to return the result of the search?如何使用 URL 的搜索引擎返回搜索结果?
【发布时间】:2011-03-19 23:12:58
【问题描述】:

我已经阅读了一些教程,并且了解这里发生了什么: http://download.oracle.com/javase/tutorial/networking/urls/readingWriting.html

我的问题是,如何使用 URL 或 URLConnection 访问搜索结果。 例如,如果我的网址是:

URL url = new URL("http://www.stackoverflow.com/");     

如何访问页面顶部的搜索引擎以返回搜索结果?

【问题讨论】:

    标签: java search-engine


    【解决方案1】:

    您应该检查页面来源。它将包含一个<form> 元素。它的action 属性将保存搜索脚本的URL。您还必须使用表单内<input> 标记中定义的名称发送关键字。

    以 SO 为例:

                    <form id="search" action="/search" method="get">
    
                    <div>
    
                        <input name="q" class="textbox" tabindex="1" onfocus="if (this.value=='search') this.value = ''" type="text" maxlength="140" size="28" value="search">
    
                    </div>
    
                    </form>
    

    将给出以下网址:

    http://www.stackoverflow.com/search?q=your+keywords+here
    

    您必须使用 URL 编码对搜索词进行编码。这里最基本的就是用字符+替换空格。

    【讨论】:

    • 感谢您的帮助。我尝试使用字符串连接将搜索 URL 与编码字符串结合起来,但我遇到了问题。我不断收到错误消息:“java.net.MalformedURLException:无协议:”如果完美匹配,表单似乎会重定向到正确的页面。这会导致错误吗?
    • 是:表单使用相对 URL。从示例中可以看出:必须解决相对 URL。如果 URL 以字符 / 开头,则来源是 web 文件夹的根目录,因此您必须重新附加协议和域名。在示例中,/search 变为 http://www.stackoverflow.com/search,因为这是处理以斜杠字符开头的相对 URL 的方式。该 url 也可能看起来像 search。有关解决 HTML 页面中 URL 的问题,请参阅此文档:w3.org/TR/WD-html40-970917/htmlweb.html
    猜你喜欢
    • 2016-04-01
    • 2012-04-10
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多