Jsoup - 应用<form> <input />标签的搜索

时间:2016-03-13 16:28:57

标签: java html forms input jsoup

我的网站http://findmusicbylyrics.com/使用了<form><input>代码来输入和提交搜索结果。

相关HTML:

<form action="/search.php" id="cse-search-box">
    <div>
        <input type="hidden" name="cx" value="partner-pub-1936238606905173:1893984547" />
        <input type="hidden" name="cof" value="FORID:10" />
        <input type="hidden" name="ie" value="UTF-8" />
        <input type="search" name="q" id="main_search_box" autofocus="autofocus" />
        <input type="submit" name="sa" value="Search" id="main_search_button" />
    </div>
</form>

我想使用Jsoup输入我的String,应用搜索并获取搜索的HTML页/页。

我的代码:

try {
    HtmlPage htmlPage = new HtmlPage(Jsoup.connect("http://findmusicbylyrics.com/").get()); // Connect to the HTML page
    Element formElement = htmlPage.getElement("form#cse-search-box"); // <form action="/search.php" id="cse-search-box"> tag
    Element searchBoxElement = formElement.select("input#main_search_box").first(); // <input type="search" name="q" id="main_search_box" autofocus="autofocus" /> tag
    Element searchBoxElement2 = searchBoxElement.attr("input", "Love");
} catch (IOException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}

如果我离开这里,我如何远离这里,因为我不知道Jsoup是否可以处理这些事情。

1 个答案:

答案 0 :(得分:1)

您很幸运,该网站正在使用GET将信息传递到搜索页面。

如果我是你,我会做的是使用搜索页面的直接网址并连接我的关键字。不要忘记用+

替换单词之间的空格
String keyWord = "hello, its me".replace(" ", "+");
HtmlPage(Jsoup.connect("http://findmusicbylyrics.com/search.php?cx=partner-pub-1936238606905173%3A1893984547&cof=FORID%3A10&ie=UTF-8&q=" + keyWord + "&sa=Search+Lyrics").get());