Может ли Jsoup имитировать нажатие кнопки?
можете ли вы использовать Jsoup для отправки поиска в Google, но вместо отправки запроса через " поиск Google "используйте"мне повезло"? Я хотел бы захватить имя сайта, который будет возвращен.
Я вижу много примеров отправки форм, но никогда не могу указать конкретную кнопку для выполнения поиска или отправки формы.
Если Jsoup не будет работать, что будет?
3 ответов
согласно HTML-источнику http://google.com кнопка "Я чувствую себя счастливым" имеет имя btnI
:
<input value="I'm Feeling Lucky" name="btnI" type="submit" onclick="..." />
Итак, просто добавив btnI
параметр строки запроса должен делать (значение не имеет значения):
http://www.google.com/search?hl=en&btnI=1&q=your + поиск + срок
Итак, этот Jsoup должен сделать:
String url = "http://www.google.com/search?hl=en&btnI=1&q=balusc";
Document document = Jsoup.connect(url).get();
System.out.println(document.title());
однако, это дало 403 (доступ запрещен) ошибка.
Exception in thread "main" java.io.IOException: 403 error loading URL http://www.google.com/search?hl=en&btnI=1&q=balusc
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:387)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:364)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:143)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:132)
at test.Test.main(Test.java:17)
возможно, Google нюхал пользовательский агент и обнаружил, что это Java. Итак, я изменил его:
String url = "http://www.google.com/search?hl=en&btnI=1&q=balusc";
Document document = Jsoup.connect(url).userAgent("Mozilla").get();
System.out.println(document.title());
это дает (как и ожидалось):
В BalusC Код
403, однако, указывает на то, что Google не обязательно доволен такими ботами. Вы можете получить (временно) IP-запрет, когда вы делаете это слишком часто.
Да, это возможно, если вы можете выяснить, как выполняются поисковые запросы Google. Но это не разрешено Google, даже если вы добьетесь успеха с этим. Вы должны использовать их официальный API для создания автоматических поисковых запросов.
http://code.google.com/intl/en-US/apis/customsearch/v1/overview.html