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

OSCHINA-MIRROR/chinagtech-zouchuqu_crawler_app

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

Android Crawler сбор новостей фреймворк


Android Crawler — это программа для сбора данных, использующая Retrofit + OkHttp + RxJava + EventBus + GreenDAO + Jsoup + Material Design. Проект вдохновлен webmagic-фреймворком для пауков и реализован с использованием RxJava.

Сборка сайтов

Благодарность за открытый проект (используемые фреймворки)

Возможности

  • Использование сервиса Android Foreground Service для повышения приоритета и предотвращения освобождения памяти устройством, а также для работы в фоновом режиме.
  • Использование интерфейса для сбора данных, что позволяет расширять различные правила сбора данных.

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

Далее приведены примеры, которые можно адаптировать под свои нужды:``` Обратите внимание на изменение файла gradle/wrapper/gradle-wrapper.properties, `distributionUrl=file:///D:/android/gradle/gradle-2.14.1-all.zip`. Замените его на свой локальный путь к Gradle.


### Проектирование базы данных

**Столбец article**

public class Article { private String title; private String content; private Date time; // раздел private String column; @Id private String url; }


Используется `url` как первичный ключ для отслеживания того, был ли уже собран данный URL.

### Фреймворк для сбора данных

Основной идеей является разделение задач на `schedule` и `processor`.

- `Schedule` отвечает за предоставление URL, в данном примере это страница списка статей, которая возвращает массив URL статей. При реализации `schedule` можно определять поля для сбора информации, а также поддерживать текущую страницу списка. Когда `spider` требует больше URL, он возвращает массив URL. Если список страниц не имеет следующей страницы, `spider` может быть активно остановлен.

- `Processor` анализирует HTML и передает данные `pipeline` для выполнения других задач, таких как сохранение данных в базе данных.
  
  ├── `ISpider.java`
  ├── `Spider.java`
  ├── `SpiderListener.java`
  
  ├─`pipeline`
  │      `GreenDaoPipeline.java`
  │      `IPipeline.java`
  
  ├─`processor`
  │      `ContentProcessor.java`
  │      `IContentProcessor.java`
  │      `IUrlProcessor.java`
  │      `ListProcessor.java`
  
  └─`schedule`
      `CommonSchedule.java`
      `ISchedule.java`**ISpider** — класс управления сборкой данных  
**IContentProcessor**, **IUrlProcessor** — парсеры содержимого HTML  
**ISchedule** — предоставляет очередь URL; при отсутствии URL может активно остановить текущий spider  
**IPipeline** — обеспечивает долговременное хранение данных, записывает данные в базу данных и т.д.Дополнительные сведения см. в документации реализации Spider.

## JavaScript для извлечения JSON строки категории
Перейдите на [сайт](http://fec.mofcom.gov.cn/article/fwydyl/zgzx/) и введите следующее в консоли разработчика:

```js
function getList() {
	var arr = [];
	$('dl.menu').find('dd').each(function () {
		var $this = $(this);
		var text = $this.text();
		var href = $this.find('a').attr('href');
		var node = {};
		node.text = text;
		node.href = href;
		arr.push(node);
	});
	return JSON.stringify(arr);
}
getList();

Результат:

[
  {
    "text": "Политические документы",
    "href": "/article/fwydyl/zcwj"
  },
  {
    "text": "Статистические данные",
    "href": "/article/fwydyl/tjsj"
  },
  {
    "text": "Связанные новости",
    "href": "/article/fwydyl/zgzx"
  }
]

Лицензия

Программа распространяется на условиях лицензии GPL. Подробнее см. основной код проекта.## Дополнительные материалы

Android Service

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

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

Введение

На Android — сборщик, созданный на основе Retrofit + OkHttp + Rxjava + Eventbus + Greendao + Jsoup + Material Design, вдохновлённый фреймворком Webmagic и использующий Rxjava для создания собственной системы сбора данных. Развернуть Свернуть
GPL-3.0
Отмена

Обновления (1)

все

Участники

все

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

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