2016-11-19 8 views
0

Я пытаюсь получить подробную информацию о том, как часто обновляется сайт, и для этого я ищу Google, используя его стандартные ключевые слова для поиска и получаю желаемый результат.Как разобрать Google для определенного сайта и диапазона дат?

См URL https://www.google.co.in/search?q=site:www.codingeek.com&tbs=cdr:1,cd_min:10/11/2016,cd_max:19/11/2016

В приведенном выше запросе я искал сайт codingeek для диапазона дат 10-Nov-2016 19-Nov-2016.

Но когда я пытаюсь использовать тот же URL-адрес из своей Java-программы, он игнорирует условия даты и отправляет обычные результаты. Пример: https://www.google.co.in/search?q=site:www.codingeek.com

Я использую HttpClient client = HttpClientBuilder.create().setUserAgent("Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)").build(); для подключения к странице и использовал JSoup для анализа и обработки возвращаемых данных HTML.

Есть ли способ решить эту проблему или Google не вернет те же значения в браузере и в программе?

ответ

0

Try URLEncoder

String url = "https://www.google.co.in/search?q=" 
      + URLEncoder.encode("site:www.codingeek.com", "UTF-8") 
      + "&tbs=" + URLEncoder.encode("cdr:1,cd_min:10/11/2016,cd_max:19/11/2016", "UTF-8"); 
+0

Тем не менее он дает те же результаты, и не обращая внимания на даты (я скопировал код, который вы написали). –

+0

попробуйте с помощью Google Custom Search api. https://developers.google.com/api-client-library/java/apis/customsearch/v1 –

+0

Для этого мне нужно иметь некоторые ключи и прочее, и оно ограничено некоторыми сайтами только в соответствии с моим ограниченным исследованием. Однако, в то же время, я пробовал и успешно выполнял эту задачу, используя htmlunit, и это дает правильные результаты. –