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

OSCHINA-MIRROR/zhangyingwei-cockroach

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 4.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 02:38 59e54b6

Cockroach: ещё одна реализация Java-краулера

License

Переработан cockroach2.

Введение

Cockroach[小强] — не знаю, почему выбрал такое название, оно длинное и трудно запоминается, что привело к потере времени из-за проблем с написанием слов в процессе кодирования.

Этот проект можно считать ещё одной моей «ямой», их у меня много, ещё один не сильно изменит ситуацию.

Это небольшой, гибкий и надёжный фреймворк для краулеров, пока что назовём его фреймворком.

Он настолько прост, что несколько строк кода могут создать краулер.

Зависимости

<dependency>
  <groupId>com.github.zhangyingwei</groupId>
  <artifactId>cockroach-core</artifactId>
  <version>1.0.6-Beta</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.zhangyingwei/cockroach-annotation -->
<dependency>
    <groupId>com.github.zhangyingwei</groupId>
    <artifactId>cockroach-annotation</artifactId>
    <version>1.0.6-Beta</version>
</dependency>

Код:

@EnableAutoConfiguration
public class CockroachApplicationTest {
    public static void main(String[] args) throws Exception {
        TaskQueue queue = TaskQueue.of();
        queue.push(new Task("http://blog.zhangyingwei.com"));
        CockroachApplication.run(CockroachApplicationTest.class,queue);
    }
}

Правильно, это так просто. Этот краулер получает содержимое страницы http://blog.zhangyingwei.com и выводит результат. Что касается обработки результатов краулера, программа по умолчанию использует класс PringStore для вывода всех результатов.

Scala & Kotlin

В качестве основных языков JVM здесь представлены scala и kotlin, которые хорошо взаимодействуют с java, но здесь приведены несколько примеров.

Scala

/**
 * Created by zhangyw on 2017/12/25.
 */
class TTTStore extends IStore{
    override def store(taskResponse: TaskResponse): Unit = {
        println("ttt store")
    }
}

object TTTStore{}
/**
 * Created by zhangyw on 2017/12/25.
 */
@EnableAutoConfiguration
@ThreadConfig(num = 1)
@Store(classOf[TTTStore])
object MainApplication {
    def main(args: Array[String]): Unit = {
        println("hello scala spider")
        val queue = TaskQueue.of()
        queue.push(new Task("http://blog.zhangyingwei.com"))
        CockroachApplication.run(MainApplication.getClass(),queue)
    }
}

Kotlin

class TTTStore :IStore{
    override fun store(response: TaskResponse) {
        print("ttt store")
    }
}

/**
 * Created by zhangyw on 2017/12/25.
 */
@EnableAutoConfiguration
@ThreadConfig(num = 1)
@Store(TTTStore::class)
object MainApplication {
    @JvmStatic
    fun main(args: Array<String>) {
        print("hello kotlin spider")
        val queue = TaskQueue.of()
        queue.push(Task("http://blog.zhangyingwei.com"))
        CockroachApplication.run(MainApplication::class.java, queue)
    }
}

Контакты

Лицензия

Лицензия Apache 2.0 (см. LICENSE)

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/zhangyingwei-cockroach.git
git@api.gitlife.ru:oschina-mirror/zhangyingwei-cockroach.git
oschina-mirror
zhangyingwei-cockroach
zhangyingwei-cockroach
master