Парсер Bing

surrealmix

Client
Регистрация
07.03.2013
Сообщения
720
Благодарностей
397
Баллы
63
Парсер поисковой выдачи www.bing.com
  • работает на http-запросах (не использует браузер)
  • прокси не требуются
  • результаты сохраняются в формате json
  • возможность исключить сбор ненужных параметров
template_canvas.png template_inputSettings.png

Формат json:
template_jsonFormat.png

Инструкция по запуску
В архиве с шаблоном есть папка ExternalAssemblies, в которой лежит необходимая для работы шаблона библиотека HtmlAgilityPack.dll
Её необходимо скопировать в папку ExternalAssemblies где установлен ZennoPoster.
template_externalAssemblies.png
Затем необходимо добавить эту скопированную библиотеку в глобальный кэш сборок (GAC).
Если она там присутствует - удалить и добавить заново.

PS: Шаблон писался на версии 5.9.9.1
template_addGac.png
 
Категория
Парсинг

Вложения

Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

seoBB

Client
Регистрация
07.09.2010
Сообщения
127
Благодарностей
19
Баллы
18
А как сильно нагружать можно с одного IP? Тайминги, лимиты какие-то есть? Никогда просто его не парсил раньше...
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
720
Благодарностей
397
Баллы
63
А как сильно нагружать можно с одного IP? Тайминги, лимиты какие-то есть? Никогда просто его не парсил раньше...
На момент публикации шаблона парсил 1000 запросов в 50 потоков без проксей (с одного IP). Проблем не было.
Полгода назад парсил Bing без перебоя ~300к запросов в 100 потоков без проксей. Проблем также не было.
 
  • Спасибо
Реакции: seoBB

webcapital-ua

Client
Регистрация
03.12.2014
Сообщения
13
Благодарностей
1
Баллы
3
У меня почему то парсит только одну страницу - http://www.bing.com/search?q=argumentative+essay+topics&count=50
на шаге
//Проверяем есть ли ссылка на следующую страницу выдачи
'{-Variable.NextUrl-}'!=''
переменная NextUrl - пустая

скорее всего ошибка в коде или есть изменения на сайте
 
Последнее редактирование:

webcapital-ua

Client
Регистрация
03.12.2014
Сообщения
13
Благодарностей
1
Баллы
3
теперь лучше только вот по всем запросам парсит только 2 страницы, может стоило перед конкурсом проверять шаблон???
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
825
Благодарностей
459
Баллы
63
теперь лучше только вот по всем запросам парсит только 2 страницы, может стоило перед конкурсом проверять шаблон???
Может лучше посмотреть входные настройки шаблона и понять что необходимое кол-во страниц настраивается в них, а не пиздеть на бесплатно выложенный шаблон?
 

webcapital-ua

Client
Регистрация
03.12.2014
Сообщения
13
Благодарностей
1
Баллы
3
а не пиздеть на бесплатно выложенный шаблон?
уважаемый ты по моему на конкурсе шаблонов а не в подворотне, поэтому фильтруй базар. И заметь на конкурсе оценивают шабоны по разным факторам в том числе и по работоспособности а не по бесплатно выложенный...
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
825
Благодарностей
459
Баллы
63
уважаемый ты по моему на конкурсе шаблонов а не в подворотне, поэтому фильтруй базар. И заметь на конкурсе оценивают шабоны по разным факторам в том числе и по работоспособности а не по бесплатно выложенный...
да, спасибо за замечание. Не удержался. Но и у Вас - был претензионный тон к шаблону, без разбора. Т.е. абы высказать недовольство - без здоровой критики.
 

Walter_White

Client
Регистрация
09.09.2016
Сообщения
147
Благодарностей
1
Баллы
18
а как потом пользоваться результатами? например сниппеты слил, в непонятном файле всё находится
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
720
Благодарностей
397
Баллы
63
а как потом пользоваться результатами? например сниппеты слил, в непонятном файле всё находится
Формат результата показан выше на скриншоте.
q = поисковой запрос.
s = массив результатов поиска.
Один результат поиска это:
i = порядковый номер (позиция в поиске)
u = ссылка
a = анкор (текст ссылки)
s = сниппет

Результаты сохраняются в список (1 поисковой запрос = 1 строка в списке).
Дальше берем строку в формате json из списка и разбираем её.
О том как разбирать json можно почитать здесь http://zennolab.com/wiki/ru:json_xml

Пример обработки сниппетов прикрепляю.
 

Вложения

eaglex

Client
Регистрация
23.07.2017
Сообщения
9
Благодарностей
3
Баллы
3
Шаблон почему-то стал часто выдавать ошибку: "Выполнение действия CSharp OwnCode Ссылка на объект не указывает на экземпляр объекта."
Хотя до этого практически без ошибок спарсил порядка 2к фраз.
Ошибка ведет на кубик с С# "Парсим поисковую выдачу"

Я полагаю дело в том, что выдача по этим фразам (на которых происходит ошибка) пустая. Но тогда зачем эту фразу пихать обратно в файл с запросами?
Видимо пустая выдача никак не обрабатывается, или я не прав?

Юзаю зенку 5.14.0.0, HtmlAgilityPack заменил, шаблон юзаю исправленный
 

webcapital-ua

Client
Регистрация
03.12.2014
Сообщения
13
Благодарностей
1
Баллы
3
Если списки привязаны к файлам - посмотрите кодировку текстовых файлов, должна быть UTF-8 и проверьте выдачу по кеям - если ничего не найдено будет ошибка...
 
Последнее редактирование:

eaglex

Client
Регистрация
23.07.2017
Сообщения
9
Благодарностей
3
Баллы
3
Если списки привязаны к файлам - посмотрите кодировку текстовых файлов, должна быть UTF-8 и проверьте выдачу по кеям - если ничего не найдено будет ошибка...
Да походу все ок, просто я думал что пустая выдача будет как-то обрабатываться, типо в консоли писаться что 0 результатов найдено, а выпадает ошибка. Ну это конечно можно и самому поправить, но впадлу. За шаб в любом случае спасибо.
 

Khaan27

Client
Регистрация
06.10.2014
Сообщения
30
Благодарностей
1
Баллы
8
Если списки привязаны к файлам - посмотрите кодировку текстовых файлов, должна быть UTF-8 и проверьте выдачу по кеям - если ничего не найдено будет ошибка...
Ошибка в том же кубике. Проверил кодировку и выдачу.
 

kerya82

Client
Регистрация
20.03.2011
Сообщения
16
Благодарностей
0
Баллы
1
Все сделано как у Вас написано, но шаблон так и не работает
Стопорится на кубике "парсим поисковую выдачу"
 

speaker

Client
Регистрация
13.10.2012
Сообщения
297
Благодарностей
42
Баллы
28
Есть решение этой проблемы?
 

ammagama

Client
Регистрация
25.09.2009
Сообщения
78
Благодарностей
11
Баллы
8
спасибо, парсит.
 

Stelsgrower

Client
Регистрация
21.12.2018
Сообщения
123
Благодарностей
55
Баллы
28
Фикс изменения выдачи.
Выдает ошибку в этом шабе: Выполнение действия CSharp OwnCode: Парсим поисковую выдачу. [Строка: 13; Cтолбец: 25] Ссылка на объект не указывает на экземпляр объекта.
 

Prena

Новичок
Регистрация
26.11.2017
Сообщения
21
Благодарностей
1
Баллы
3
Формат результата показан выше на скриншоте.
q = поисковой запрос.
s = массив результатов поиска.
Один результат поиска это:
i = порядковый номер (позиция в поиске)
u = ссылка
a = анкор (текст ссылки)
s = сниппет

Результаты сохраняются в список (1 поисковой запрос = 1 строка в списке).
Дальше берем строку в формате json из списка и разбираем её.
О том как разбирать json можно почитать здесь http://zennolab.com/wiki/ru:json_xml

Пример обработки сниппетов прикрепляю.
Почему-то может часто появляться ошибка :
Сбойное действие: Чистим сниппеты
Чистим сниппеты. Последовательность не содержит элементов
 

Prena

Новичок
Регистрация
26.11.2017
Сообщения
21
Благодарностей
1
Баллы
3
Я так понимаю, скорее всего что-то с символами, в парсере указано utf-8
смотрим в JSON - q в нормальной кодировке с символом ç
а в самом снипете уже цифры этого символа \u0026#231; или оно потом преобразует в нужный символ когда будет в htmlе , при кодировке не меняются на букву, т.е. он уже парсит в таком виде.

Бог с ним с той обработкой, но почему он парсит не ç а \u0026#231;
 
Последнее редактирование:

Prena

Новичок
Регистрация
26.11.2017
Сообщения
21
Благодарностей
1
Баллы
3
нашел)) кому интересно убираем :

//remove special characters
rawSnippet = Regex.Replace(rawSnippet, @"[^0-9a-zA-Zа-яА-Я\ \""\'\.\?\!,:-;—…]+", string.Empty);

вроде бы тогда всё гуд

UPD:
символы появились, но снова выпадает периодически:
Выполнение действия CSharp OwnCode: Чистим сниппеты. Последовательность не содержит элементов
Сбойное действие: Чистим сниппеты
 

Prena

Новичок
Регистрация
26.11.2017
Сообщения
21
Благодарностей
1
Баллы
3
Похоже, что-то с обрезкой урлов было, убрал вроде бы норм сейчас
 

ammagama

Client
Регистрация
25.09.2009
Сообщения
78
Благодарностей
11
Баллы
8
surrealmix, не посмотрите по возможности шаблон парсинга, такое впечатление, что поменялась выдача бинга. В двух разных парсерах попробовал, сегодня ночью как отрезало, пошла сплошняком ошибка
Выполнение действия CSharp OwnCode Ссылка на объект не указывает на экземпляр объекта.
это в шаге с# Парсим поисковую выдачу
 
  • Спасибо
Реакции: Prena

Prena

Новичок
Регистрация
26.11.2017
Сообщения
21
Благодарностей
1
Баллы
3
Тоже самое :(
 
Последнее редактирование:

ammagama

Client
Регистрация
25.09.2009
Сообщения
78
Благодарностей
11
Баллы
8
кстати, сейчас запустил бинг парсер, и он работает. Другой шаблон запустил там тоже парсит бинг, но по другому тоже заработал. Будем считать был затык на стороне бинга.
 

Prena

Новичок
Регистрация
26.11.2017
Сообщения
21
Благодарностей
1
Баллы
3
что-то связано с ip т.к. то работает на прокси, потом он с ним не работает, если без прокси то работает пока что, наверно пока не забаннит.
 

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