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

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


Заметил что если зайти в аккаунт Google, в коде страницы можно найти строчку о том сколько страниц нашлось, в отличии от поиска без авторизации.
  • 5. Вопрос как авторизоваться в Google ?


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

		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("Яндекс запрос не найдено");
		}
Изменен:19 дек 2016 03:08
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет