Местами не срабатывает парсинг

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Привет всем. Что-то у меня с парсингом выдачи поломано.
Настраиваю спарсить результаты выдачи по случайному запросу чтобы получить ссылку того сайта который мне нужен. Но иногда сайт есть в выдаче а в список не попадает и программ его не видит.

На скрине мой кубик который настроен и парсит (через раз удачно)
также указан запрос по которому идет поиск и что в результате есть нужный сайт.
Справа настройки свежего парсинга (провой кнопкой нажал на тайтл выдачи и - парсить) Как видите там в списке нет того что нужно.

Но так не всегда. В отдельных случаях в списке есть целевой урл. В какой ситуации есть и в какой нет - не понимаю и как на это повлиять тоже.

46701
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
у яндекса есть рекламные и не рекламные записи
смотри структуру всего документа в браузере в консоле.
лучше работать с xpath
 

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Это понятно. Но мой пример в выдаче не рекламный. Рекламные всегда начинаются на "yabs"
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
Это понятно. Но мой пример в выдаче не рекламный. Рекламные всегда начинаются на "yabs"
там корона стоит. скорее всего немного по другому структура там.
кинь сюда полную поисковую ссылку
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
https://yandex.ru/search/?lr=213&text=цветочная отдушка икеа что с ней делать

Вот с адресной строки взял.

А ссылку система берет такую () укоротил а то огромная слишком

тут я заметил вот что - иногда (с этим же сайтом) показывает как нужно а иногда ссылка есть в 4 варианте в 2 вариантах (основной домен и нужная ссылка) Но по факту есть всегда.

Если нет в первом варианте тогда есть так но только домен без ссылки на страницу:

46708


"//*/li[@class='serp-item']/div//div[contains(@class,'organic__path')]/a[2]
попробуй этот xpath "

Тот же результат
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Ну вот как то так) теперь нужно понять что у меня не правильно сделано)
правой кнопкой парсить результат нажимал на ту ссылку что у вас на скрине. И на тайтл нажимал и на домен. результат тот же


46713
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
46715


у меня такой записи нет. может у вас отключено что то ? я пробовал на нулевом проекте на файрфоксе со всеми включенными загрузками, флеш, скрипты , фреймы и тд.
 
  • Спасибо
Реакции: tiptopvkr

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Кеш что ли... Заработало) Прогнал по 5 случайным запросам и попустило) Большое спасибо за помощь)
 

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Только что наткнулся на одну проблемку и решил ее. Пригодится тому кто будет применять

//*/li[@class='serp-item']/div//div[contains(@class,'organic__path')]/a[2] эта строка не справляется с адресами некоторыми у которых второй уровень вложенности. И у которых в выдаче под тайтлом кириллический адрес а не латиницей.

И я добавил второй кубик похожий на первый но с одним изменением //*/li[@class='serp-item']/div//div[contains(@class,'organic__path')]/a[3] - в конце не 2 а 3 поставил и он допарсивает верный адрес.

47042

Вот когда такие адреса
Первая строчка вытягивает такой урл: https://домен/articles
Вторая: https://домен/articles/septiki-dlya-dachi-chto-eto-i-kak-vybrat-podkhodyashchuyu-model/
Но вторая не вытягивет всего того что в первой потому я ставил 2 кубика и они друг друга дополняют и допарсивают не дублируя
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
Только что наткнулся на одну проблемку и решил ее. Пригодится тому кто будет применять

//*/li[@class='serp-item']/div//div[contains(@class,'organic__path')]/a[2] эта строка не справляется с адресами некоторыми у которых второй уровень вложенности. И у которых в выдаче под тайтлом кириллический адрес а не латиницей.

И я добавил второй кубик похожий на первый но с одним изменением //*/li[@class='serp-item']/div//div[contains(@class,'organic__path')]/a[3] - в конце не 2 а 3 поставил и он допарсивает верный адрес.

Посмотреть вложение 47042
Вот когда такие адреса
Первая строчка вытягивает такой урл: https://домен/articles
Вторая: https://домен/articles/septiki-dlya-dachi-chto-eto-i-kak-vybrat-podkhodyashchuyu-model/
Но вторая не вытягивет всего того что в первой потому я ставил 2 кубика и они друг друга дополняют и допарсивают не дублируя
а полный Url на самом деле лежит в соседней дочке :-) вот здесь
47048


я себе сделал так.
ищу по //*/li[@class='serp-item']/div//div[contains(@class,'organic__path')]/a/b
выбираю нужный мне элемент и 4 раза подымаюсь по родителям с помощью .ParentElement;
а потом делаю .FindChildByTag("h2",0);
и кликаю уже по заголовку. а если для парсинга то там же и полный URL лежит :-)
 

tiptopvkr

Client
Регистрация
26.09.2019
Сообщения
189
Благодарностей
14
Баллы
18
Я из вышенаписаного половину не понял (начиная со слова "выбираю)")) Новичок я еще) Но попробую разобраться в процессе.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)