Парсер Bing

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Реакции
409
Баллы
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
 
Номер конкурса шаблонов
  1. Первый конкурс шаблонов
Уровень сложности
Средний
Категория
  1. Парсинг

Вложения

А как сильно нагружать можно с одного IP? Тайминги, лимиты какие-то есть? Никогда просто его не парсил раньше...
 
А как сильно нагружать можно с одного IP? Тайминги, лимиты какие-то есть? Никогда просто его не парсил раньше...
На момент публикации шаблона парсил 1000 запросов в 50 потоков без проксей (с одного IP). Проблем не было.
Полгода назад парсил Bing без перебоя ~300к запросов в 100 потоков без проксей. Проблем также не было.
 
  • Оценить
Реакции: seoBB
У меня почему то парсит только одну страницу - http://www.bing.com/search?q=argumentative+essay+topics&count=50
на шаге
//Проверяем есть ли ссылка на следующую страницу выдачи
'{-Variable.NextUrl-}'!=''
переменная NextUrl - пустая

скорее всего ошибка в коде или есть изменения на сайте
 
Последнее редактирование:
теперь лучше только вот по всем запросам парсит только 2 страницы, может стоило перед конкурсом проверять шаблон???
 
теперь лучше только вот по всем запросам парсит только 2 страницы, может стоило перед конкурсом проверять шаблон???
Может лучше посмотреть входные настройки шаблона и понять что необходимое кол-во страниц настраивается в них, а не пиздеть на бесплатно выложенный шаблон?
 
а не пиздеть на бесплатно выложенный шаблон?
уважаемый ты по моему на конкурсе шаблонов а не в подворотне, поэтому фильтруй базар. И заметь на конкурсе оценивают шабоны по разным факторам в том числе и по работоспособности а не по бесплатно выложенный...
 
уважаемый ты по моему на конкурсе шаблонов а не в подворотне, поэтому фильтруй базар. И заметь на конкурсе оценивают шабоны по разным факторам в том числе и по работоспособности а не по бесплатно выложенный...
да, спасибо за замечание. Не удержался. Но и у Вас - был претензионный тон к шаблону, без разбора. Т.е. абы высказать недовольство - без здоровой критики.
 
а как потом пользоваться результатами? например сниппеты слил, в непонятном файле всё находится
 
а как потом пользоваться результатами? например сниппеты слил, в непонятном файле всё находится
Формат результата показан выше на скриншоте.
q = поисковой запрос.
s = массив результатов поиска.
Один результат поиска это:
i = порядковый номер (позиция в поиске)
u = ссылка
a = анкор (текст ссылки)
s = сниппет

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

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

Вложения

Шаблон почему-то стал часто выдавать ошибку: "Выполнение действия CSharp OwnCode Ссылка на объект не указывает на экземпляр объекта."
Хотя до этого практически без ошибок спарсил порядка 2к фраз.
Ошибка ведет на кубик с С# "Парсим поисковую выдачу"
cV5ghSTihI0ZDM4I_owpdxqYic57Efn6c-4iQ2V--YqOX1WKM-noESi6KvHP9STb-W5tVyPrrU35dmGipW3l-w%3D%3D

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

Юзаю зенку 5.14.0.0, HtmlAgilityPack заменил, шаблон юзаю исправленный
 
Если списки привязаны к файлам - посмотрите кодировку текстовых файлов, должна быть UTF-8 и проверьте выдачу по кеям - если ничего не найдено будет ошибка...
 
Последнее редактирование:
Если списки привязаны к файлам - посмотрите кодировку текстовых файлов, должна быть UTF-8 и проверьте выдачу по кеям - если ничего не найдено будет ошибка...
Да походу все ок, просто я думал что пустая выдача будет как-то обрабатываться, типо в консоли писаться что 0 результатов найдено, а выпадает ошибка. Ну это конечно можно и самому поправить, но впадлу. За шаб в любом случае спасибо.
 
Если списки привязаны к файлам - посмотрите кодировку текстовых файлов, должна быть UTF-8 и проверьте выдачу по кеям - если ничего не найдено будет ошибка...
Ошибка в том же кубике. Проверил кодировку и выдачу.
 
Все сделано как у Вас написано, но шаблон так и не работает
Стопорится на кубике "парсим поисковую выдачу"
 
Есть решение этой проблемы?
 
спасибо, парсит.
 
Фикс изменения выдачи.
Выдает ошибку в этом шабе: Выполнение действия CSharp OwnCode: Парсим поисковую выдачу. [Строка: 13; Cтолбец: 25] Ссылка на объект не указывает на экземпляр объекта.
 
Формат результата показан выше на скриншоте.
q = поисковой запрос.
s = массив результатов поиска.
Один результат поиска это:
i = порядковый номер (позиция в поиске)
u = ссылка
a = анкор (текст ссылки)
s = сниппет

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

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

Почему-то может часто появляться ошибка :
Сбойное действие: Чистим сниппеты
Чистим сниппеты. Последовательность не содержит элементов
 
Я так понимаю, скорее всего что-то с символами, в парсере указано utf-8
смотрим в JSON - q в нормальной кодировке с символом ç
а в самом снипете уже цифры этого символа \u0026#231; или оно потом преобразует в нужный символ когда будет в htmlе , при кодировке не меняются на букву, т.е. он уже парсит в таком виде.

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

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

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

UPD:
символы появились, но снова выпадает периодически:
Выполнение действия CSharp OwnCode: Чистим сниппеты. Последовательность не содержит элементов
Сбойное действие: Чистим сниппеты
 
Похоже, что-то с обрезкой урлов было, убрал вроде бы норм сейчас
 
surrealmix, не посмотрите по возможности шаблон парсинга, такое впечатление, что поменялась выдача бинга. В двух разных парсерах попробовал, сегодня ночью как отрезало, пошла сплошняком ошибка
Выполнение действия CSharp OwnCode Ссылка на объект не указывает на экземпляр объекта.
это в шаге с# Парсим поисковую выдачу
 
  • Оценить
Реакции: Prena
Тоже самое :(
 
Последнее редактирование:
кстати, сейчас запустил бинг парсер, и он работает. Другой шаблон запустил там тоже парсит бинг, но по другому тоже заработал. Будем считать был затык на стороне бинга.
 
что-то связано с ip т.к. то работает на прокси, потом он с ним не работает, если без прокси то работает пока что, наверно пока не забаннит.
 

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