Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Stereotipchik
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 6
1

Java Jsoup парсер поисковой выдачи

19.12.2016, 02:31. Просмотров 820. Ответов 2
Метки нет (Все метки)

Здравствуйте, попытался сделать парсер для Яндекса и Google, но каждый раз значения либо разные, либо вообще ничего не находит.
  • 1. Подскажите как подменить IP при парсинге (Яндекс при частых обращениях начинает выдавать нулевые значения) ?
  • 2. Данные по тому сколько Яндекс нашел страниц каждый раз разные, как от этого избавиться ?
  • 3. С Google не ищет, подскажите как исправить ?
  • 4. По возможности помогите с упрощением кода начал изучать программирование недавно.

Вот кусок кода:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
        Document doc;
        Document doc1;
        Document doc2;
        Document doc3;
        String url = ("http://site.ru");
        doc = Jsoup.connect(url).userAgent("Mozilla").timeout(10000).get();
        String zapros = "site:"+url;
        String zapros1 = "какой то запрос";
        doc1 = Jsoup.connect("https://www.google.ru/#q=" + zapros).userAgent("Mozilla").timeout(10000).get();
        Elements googleind = doc1.select("div[id=resultStats]");
        int googleprov = googleind.size();
        String googleind1 = googleind.text().replaceAll("Результатов: примерно ", "");
        if(googleprov>0){
            System.out.println("Google проиндексировано: " + googleind1);
        }
        if(googleprov<1){
            System.out.println("Google не найдено");
        }
        
        
        doc2 = Jsoup.connect("https://yandex.ru/search/?lr=213&text=" + zapros).userAgent("Mozilla").timeout(10000).get();
        Elements yandexind = doc2.select("div[class=serp-adv__found]");
        int yandexprov = yandexind.size();
        String yandexind1 = yandexind.text().replaceAll("Нашлось ", "");
        String yandexind2 = yandexind1.replaceAll("результатов", "");
        String yandexind3 = yandexind2.replaceAll("тыс.", "000");
        String yandexind4 = yandexind3.replaceAll("млн", "000 000");
        if(yandexprov>0){
            System.out.println("Яндекс проиндексировано: " + yandexind4);
        }
        if(yandexprov<1){
            System.out.println("Яндекс не найдено");
        }
        
        
        doc3 = Jsoup.connect("https://yandex.ru/search/?lr=213&text=" + zapros1).userAgent("Mozilla").timeout(10000).get();
        Elements yandexzap = doc3.select("a[class=link link_outer_yes path__item]");
        int yandexzapprov = yandexzap.size();
        int z = 0;
        String yandexzaplink = yandexzap.attr("href");
        Pattern pattern20 = Pattern.compile(url);
        Matcher matcher20 = pattern20.matcher(yandexzaplink);
        while (matcher20.find()) {
            z++;
        }
        if(yandexzapprov>0){
            System.out.println("Яндекс запрос найден");
            System.out.println("Яндекс результатов найдено " + z);
            System.out.println("Яндекс проверка "+ yandexzaplink);
        }
        if(yandexzapprov<1){
            System.out.println("Яндекс запрос не найдено");
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2016, 02:31
Ответы с готовыми решениями:

Парсер jsoup возвращаеться ошибка 403
Доброго времени суток, начал не так давно изучать джаву, решил написать...

Сервер выдачи баннеров (Java, PostgreSQL)
Мобильные приложения (Android, iOS) запрашивают у сервера баннер определённого...

Парсер внешних ссылок по страницам сайта на JAVA - как сделать правильно?
Здравствуйте уважаемые Java разработчики. Столкнулся со следующей задачей -...

Jsoup, не находит нужные элементы
Добрый вечер, возникла проблема, не понимаю в чем ошибка. Всё время выдает...

Jsoup. Парсинг при авторизации
Парсю сайт. На странице есть элемент (цена), значение которого меняется в...

2
Bend3r
149 / 136 / 35
Регистрация: 29.07.2012
Сообщений: 709
22.12.2016, 19:33 2
Используйте их официальное API.
0
snajper_ro
108 / 93 / 51
Регистрация: 14.09.2011
Сообщений: 589
Записей в блоге: 1
29.12.2016, 13:24 3
моя старая реализация
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2016, 13:24

Элементы Selenium аналогичные jsoup
Здравствуйте, делаю первые шаги с Selenium и возник такой вопрос. Можно ли...

Получить полную ссылку jsoup 1.7.3
Убил уже кучу времени, а так и не понял как получить полные пути ссылок со...

Программно нажать кнопку (Jsoup)
Здравствуйте! Как можно сделать или вообще возможно ли так? вытаскиваем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru