1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/huhuzhu-go_spider

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

go_spider

Статус сборки

Ползун, созданный с использованием GOLANG для вертикальных сообществ.

Изображение

Последняя стабильная версия: Версия 1.2 (23 сентября 2014 года).

  • Обсуждение go_spider группы Номер QQ группы: 337344607

Основные возможности

  • Параллелизм
  • Подходит для вертикальных сообществ
  • Гибкость, модульность
  • Нативная реализация на Go
  • Легко расширяемый до индивидуального ползуна

Требования

  • Go 1.2 или выше

Документация

Китайская документация && Часто задаваемые вопросы.

Установка

go get github.com/hu17889/go_spider
go get github.com/PuerkitoBio/goquery
go get github.com/bitly/go-simplejson
go get golang.org/x/net/html/charset

Этот проект основан на simplejson, goquery.

Вы можете скачать пакеты с http://gopm.io/ в Китае.

Пример использования

Вот пример для парсинга содержимого GitHub. Вы можете попробовать процесс парсинга.

  • go install github.com/hu17889/go_spider/example/github_repo_page_processor
  • ./bin/github_repo_page_processor

Больше примеров здесь: примеры.## Создание вашего ползуна

    // Входящие данные ползуна:
    //  PageProcesser ;
    //  Имя задачи, используемое в Pipeline для записи;
    spider.NewSpider(NewMyPageProcesser(), "TaskName").
        AddUrl("https://github.com/hu17889?tab=repositories", "html"). // Начальный URL, тип ответа ("html" или "json")
        AddPipeline(pipeline.NewPipelineConsole()).                    // Отображение результата на экране
        SetThreadnum(3).                                               // Запросы парсер выполняются тремя корутинами
        Run()
  • Используйте встроенные модули

    • Downloader: HttpDownloader
    • Scheduler: QueueScheduler
    • Pipeline: PipelineConsole, PipelineFile
  • Используйте свои модули

Просто скопируйте встроенные модули и измените их!

Если вы создали модуль Downloader, вы можете использовать его с помощью Spider.SetDownloader(ваш_донлоадер).

Если вы создали модуль Pipeline, вы можете использовать его с помощью Spider.AddPipeline(ваш_пайплайн).

Если вы создали модуль Scheduler, вы можете использовать его с помощью Spider.SetScheduler(ваш_scheduler).

Расширения

Папка расширений включает модули или другие инструменты, которые кто-то делится. Вы можете отправить свой код без ошибок.

Модули

Spider

Краткое описание: Инициализация парсера, управление одновременной работой, базовый модуль, управление модулем, установка конфигураций.

Функции:- Функции запуска парсера: Get, GetAll, Run

  • Добавление запроса: AddUrl, AddUrls, AddRequest, AddRequests
  • Установка основного модуля: AddPipeline (может иметь несколько модулей пайплайна), SetScheduler, SetDownloader
  • Установка конфигураций: SetExitWhenComplete, SetThreadNum (число одновременных задач), SetSleepTime (время паузы после одной работы)
  • Отслеживание: OpenFileLog, OpenFileLogDefault (функция открытия лог файла, запись производится с помощью пакета mlog), CloseFileLog, OpenStrace (отображение информации трассировки на экран через stderr), CloseStrace### Downloader

Краткое описание: Парсер отправляет запрос в Scheduler, содержащий URL для парсинга. Затем Downloader скачивает результат (HTML, JSON, JSONP, текст) запроса. Результат сохраняется в объекте Page для последующего анализа в PageProcessor. Анализ HTML основан на пакете goquery, анализ JSON — на пакете simplejson, а JSONP преобразуется в JSON. Текст представляет собой простой текст без использования парсера.

Функции:

  • Download: скачивание содержимого цели парсинга. Результат содержит данные, заголовок, cookie и информацию запроса.

PageProcessor

Краткое описание: Модуль PageProcessor выполняет анализ результатов. Модуль получает ключ-значение пары результатов и URL следующих шагов парсинга. Эти ключ-значение пары сохраняются в объектах PageItems, а URL добавляются в Scheduler.

Функции:

  • Process: анализирует цель парсинга.

Page

Краткое описание: Сохраняет информацию запроса.

Функции:

  • Получить результат: GetJson, GetHtmlParser, GetBodyStr(текст в чистом виде)
  • Получить информацию о цели: GetRequest, GetCookies, GetHeader
  • Получить состояние процесса парсинга: IsSucc(Успешность загрузки), Errormsg(Получение информации об ошибке в Downloader)
  • Установить конфигурацию: SetSkip, GetSkip(если skip истинно, не выводить результат в Pipeline), AddTargetRequest, AddTargetRequests(Сохранение URL для последующего парсинга), AddTargetRequestWithParams, AddTargetRequestsWithParams, AddField(Сохранение ключ-значение после парсинга)

РасписаниеКраткое описание: Модуль расписания представляет собой очередь запросов. Указанные в модуле PageProcessor URL помещаются в эту очередь.

Функции:

  • Добавление
  • Получение
  • Подсчёт

Пайплайн

Краткое описание: Модуль пайплайна выводит результат и сохраняет его там, где вам это нужно. По умолчанию используется модуль PipelineConsole (вывод в стандартный поток) и PipelineFile (вывод в файл).

Функции:

  • Обработка

Запрос

Краткое описание: Модуль запроса содержит конфигурацию HTTP-запросов, такие как URL, заголовки и cookies.

Функции:

  • Обработка

Лицензия

go_spider лицензировано под Mozilla Public License Version 2.0

Mozilla кратко описывает область действия лицензии следующим образом:

MPL: Копирон права применимы ко всем файлам, содержащим код с лицензией MPL.

Это значит:

  • Вы можете использовать неизменённый исходный код как в личных, так и в коммерческих целях.
  • Вам не требуется публиковать исходный код вашей библиотеки, если файлы остаются неизменными под лицензией MPL 2.0.
  • Вам нужно публиковать исходный код любых изменённых файлов, лицензированных под MPL 2.0, под лицензией MPL 2.0 самой или совместимой лицензией (например, GPL 3.0 или Apache License 2.0).

Для получения более подробной информации о лицензии прочтите MPL 2.0 FAQ.Вы можете прочитать полные условия здесь: LICENSE.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/huhuzhu-go_spider.git
git@api.gitlife.ru:oschina-mirror/huhuzhu-go_spider.git
oschina-mirror
huhuzhu-go_spider
huhuzhu-go_spider
master