Интересно, можно ли искать YouTube с помощью HtmlUnit . Я начал писать код, вот он:
import java.io.IOException;
import java.net.MalformedURLException;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
public class HtmlUnitExampleTestBase {
private static final String YOUTUBE = "http://www.youtube.com";
public static void main(String[] args) throws FailingHttpStatusCodeException, MalformedURLException, IOException {
WebClient webClient = new WebClient();
webClient.setThrowExceptionOnScriptError(false);
//This is equivalent to typing youtube.com to the adress bar of browser
HtmlPage currentPage = webClient.getPage("http://www.youtube.com");
//Get form where submit button is located
HtmlForm searchForm = (HtmlForm) currentPage.getElementById("masthead-search");
//Printing result form
System.out.println(searchForm.asText());
final List<HtmlAnchor> listLinks = (List<HtmlAnchor>) newPage.getByXPath("//a[@class='ux-thumb-wrap result-item-thumb']");
for (int i=0; i<listLinks.size(); i++){
System.out.println(YOUTUBE + listLinks.get(i).getAttribute("href"));
}
}
}
Теперь я не знаю, как ввести текст в поле поиска и нажать кнопку поиска.
Я видел учебники по HtmlUnit, но у меня возникла проблема, потому что они используют метод с именем: getElementByName
, но кнопка поиска на YouTube не имеет имени, только идентификатор. Может ли кто-нибудь помочь мне?
РЕДАКТИРОВАТЬ: я отредактировал код выше кода, и теперь я получаю ссылки на YouTube с первой страницы. Но перед этим мне нужно отсортировать по дате загрузки, а затем получить ссылки. Может ли кто-нибудь помочь мне сделать сортировку?