GoldDataSpider
Введение
GoldDataSpider — это открытый проект для сбора данных, который используется для извлечения данных с веб-страниц. Его основной код был выделен из платформы сбора и слияния данных GoldData.
Проект позволяет извлекать данные с веб-сайтов, включая содержимое страниц, URL-адреса, заголовки HTTP и данные из файлов cookie.
В проекте используется простая, гибкая и быстрая структура или правила синтаксиса. Он эффективно извлекает значимые и ценные поля данных из содержимого веб-страницы, заголовков HTTP, файлов cookie и даже связанных веб-страниц и других сайтов, формируя записи данных. Кроме того, он может встраивать HTTP-запросы для дополнения полей данных, например, для перевода некоторых полей в словари.
Проект также поддерживает извлечение данных из различных типов документов, таких как HTML, XML, JSON, JavaScript и текст.
Бесплатная версия GoldData для сообщества
Бесплатная версия GoldData для сообщества — это программное обеспечение для частного облака, которое позволяет собирать данные без ограничений, таких как количество пауков, скорость и время сбора, количество собранных данных и объём экспортируемых данных.
Мы предоставляем подробные бесплатные документы и обучающие видео о платформе GoldData. Для получения дополнительной информации посетите здесь.
Добавьте QQ в группу обмена: 718556263. Если вы поставите лайк проекту на Oschina или GitHub, вы получите месячную лицензию профессиональной версии.
Технические преимущества
GoldData | Scrapy | |
---|---|---|
Преимущества | 1. Простые, гибкие и лёгкие в написании правила с поддержкой визуального редактора и редактора исходного кода 2. Возможность повторного сбора данных без дублирования 3. Возможность одновременного сбора данных и отношений данных в базу данных |
1. Основан на Python-скриптах 2. Большое количество сторонних материалов 3. Преимущество интернационализации |
Недостатки | В настоящее время поддерживается только MySQL | Правила и Python-код смешаны, что затрудняет обслуживание |
GoldData | spiderman/spiderman2 | |
---|---|---|
Преимущества | 1. Простые, гибкие и лёгкие в написании правила с поддержкой визуального редактора и редактора исходного кода 2. Возможность повторного сбора данных без дублирования 3. Возможность одновременного сбора данных и отношений данных в базу данных |
|
Недостатки | В настоящее время поддерживается только MySQL | Скрипт большой, его трудно поддерживать |
GoldData | Другие коммерческие сборщики данных | |
---|---|---|
Преимущества | 1. Простые, гибкие и лёгкие в написании правила с поддержкой визуального редактора и редактора исходного кода 2. Возможность повторного сбора данных без дублирования 3. Возможность одновременного сбора данных и отношений данных в базу данных 4. Полностью бесплатная неограниченная функция сбора данных |
1. Функция «визуального» сбора |
Недостатки | 1. В настоящее время поддерживается только MySQL 2. Нет функции «визуального» сбора |
1. Обычно требуется написание скриптов, «визуальный» сбор малоэффективен 2. Бесплатные версии обычно ограничивают количество сборов, объём экспорта или количество пауков |
Начало работы
Сначала добавьте зависимости в проект (поскольку мы уже добавили этот проект в центральный репозиторий Maven), например:
<dependency>
<groupId>com.100shouhou.golddata</groupId>
<artifactId>golddata-spider</artifactId>
<version>1.1.4</version>
</dependency>
compile group: 'com.100shouhou.golddata', name: 'golddata-spider', version: '1.1.4'
Затем вы можете использовать простой и понятный API, предоставляемый этими зависимостями, например:
@Test
public void testGoldSpider(){
String ruleContent=
" { \n"+
" __node: li.sky.skyid \n"+
" date: \n"+
" { \n"+
" expr: h1 \n"+
" __label: 日期 \n"+
" } \n"+
" sn: \n"+
" { \n"+
" \n"+
" js: md5(baseUri+item.date+headers['Content-Type']);\n"+
" } \n"+
" weather: \n"+
" { \n"+
" expr: p.wea \n"+
" } \n"+
" temprature: \n"+
" { \n"+
" expr: p.tem>i \n"+
" } \n"+
" } \n";
GoldSpider spider= com.xst.golddata.GoldSpider.newSpider()
.setUrl("http://www.weather.com.cn/weather/101020100.shtml")
.setRule(ruleContent)
.request();
List list=spider.extractList();
// List<Weather> weathers=spider.extractList(Weather.class);
// Weather weathers=spider.extractFirst(Weather.class);
list.forEach( System.out::println);
}
Запустив этот тест, вы увидите вывод, подобный следующему:
{date=19日(今天), weather=阴转小雨, temprature=10℃, sn=8bc265cb2bf23b6764b75144b255d81d}
{date=20日(明天), weather=小雨转多云, temprature=11℃, sn=9efd7e7bbbfb9bb06e04c0c990568bfd}
{date=21日(后天), weather=多云转中雨, temprature=11℃, sn=728539ac882721187741708860324afa}
{date=22日(周六), weather=小雨,
*Примечание: в тексте запроса присутствуют фрагменты кода на языке Java, которые были оставлены без изменений.* {date=23日(周日), weather=небольшой дождь, переходящий в облачность, temprature=9℃, sn=a23fa2233e750a3bdd11b2e200ed06c3}
{date=24日(周一), weather=облачность, переходящая в небольшой дождь, temprature=8℃, sn=b27e1b8a8e92a7bed384ceb3e4fdfb5f}
{date=25日(周二), weather=небольшой дождь, переходящий в умеренный дождь, temprature=6℃, sn=16f71d3c8f09394588532a3ed1a8bacf}
Можно использовать в проекте как вызов сервиса и API. Например:
```java
@Service
public class WeatherServiceImpl implements WeatherService{
public List<Weather> listByCityId(Long cityId){
String url="http://www.weather.com.cn/weather/"+cityId+".shtml"
String rule="<аналогично>"
GoldSpider spider= com.xst.golddata.GoldSpider.newSpider()
.setUrl(url)
.setRule(ruleContent)
.request();
return spider.extractList(Weather.class);
}
}
Кроме того, можно бесплатно использовать визуальный редактор для редактирования содержимого правил. Визуальный редактор доступен на платформе «Золотые данные», его можно скачать по ссылке: ссылка. Скриншот визуального редактора:
Содержимое правил и документация доступны по ссылке: здесь.
Вы можете ознакомиться с соответствующими статьями на Oschina, https://my.oschina.net/u/4095696?tab=newest.
Golddata-Spider использует лицензию Apache версии 2.0.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )