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

OSCHINA-MIRROR/nlh774-DotnetSpider

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

DotnetSpider

Travis branch NuGet Проект-член .NET Core Community GitHub license

DotnetSpider — библиотека для веб-скрапинга на .NET Standard, похожая на WebMagic и Scrapy. Это легковесный, эффективный и быстрый высокого уровня фреймворк для веб-скрапинга на .NET.

Дизайн

Дизайн

Область разработки

Опциональная область разработки

Дополнительная документация

https://github.com/dotnetcore/DotnetSpider/wiki

Примеры

Пожалуйста, посмотрите проект DotnetSpider.Sample в решении.

Основное использование

Коды основного использования

Дополнительное использование: Настройка Entity Spider

Просмотр полного кода

public class EntityModelSpider
{
    public static void Run()
    {
        Spider spider = new Spider();
        spider.Run();
    }
}
```    	private class Spider : EntitySpider
    	{
    		protected override void OnInit(params string[] arguments)
    		{
    			var word = "кока-кола|свежее";
    			AddRequest(string.Format("http://news.baidu.com/ns?word={0}&tn=news&from=news&cl=2&pn=0&rn=20&ct=1", word), new Dictionary<string, dynamic> { { "Keyword", word } });
    			AddEntityType<BaiduSearchEntry>();
    			AddPipeline(new ConsoleEntityPipeline());
    		}```markdown
    [Schema("baidu", "baidu_search_entity_model")]
    [Entity(Expression = ".//div[@class='result']", Type = SelectorType.XPath)]
    class BaiduSearchEntry : BaseEntity
    {
        [Column]
        [Field(Expression = "Keyword", Type = SelectorType.Environment)]
        public string Keyword { get; set; }

        [Column]
        [Field(Expression = ".//h3[@class='c-title']/a")]
        [ReplaceFormatter(NewValue = "", OldValue = "<em>")]
        [ReplaceFormatter(NewValue = "", OldValue = "</em>")]
        public string Title { get; set; }

        [Column]
        [Field(Expression = ".//h3[@class='c-title']/a/@href")]
        public string Url { get; set; }

        [Column]
        [Field(Expression = ".//div/p[@class='c-author']/text()")]
        [ReplaceFormatter(NewValue = "-", OldValue = "&nbsp;")]
        public string Website { get; set; }

        [Column]
        [Field(Expression = ".//div/span/a[@class='c-cache']/@href")]
        public string Snapshot { get; set; }

        [Column]
        [Field(Expression = ".//div[@class='c-summary c-row ']", Option = FieldOptions.InnerText)]
        [ReplaceFormatter(NewValue = "", OldValue = "<em>")]
        [ReplaceFormatter(NewValue = "", OldValue = "</em>")]
        [ReplaceFormatter(NewValue = " ", OldValue = "&nbsp;")]
        public string Details { get; set; }

        [Column(Length = 0)]
        [Field(Expression = ".", Option = FieldOptions.InnerText)]
        [ReplaceFormatter(NewValue = "", OldValue = "<em>")]
        [ReplaceFormatter(NewValue = "", OldValue = "</em>")]
        [ReplaceFormatter(NewValue = " ", OldValue = "&nbsp;")]
        public string PlainText { get; set; }
    }
}

public static void Main()
{
    EntityModelSpider.Run();
}

#### Запуск через стартап

    Команда: -s:[тип паука или TaskName attribute] -i:[идентификатор] -a:[аргумент1, аргумент2...] --tid:[идентификатор задачи] -n:[имя] -c:[путь или имя файла конфигурации]1.  -s: Укажите имя типа паука или TaskNameAttribute, например: DotnetSpider.Sample.BaiduSearchSpider
2.  -i: Установите идентификатор.
3.  -a: Передайте аргументы в метод Run паука.
4.  --tid: Установите идентификатор задачи.
5.  -n: Установите имя.
6.  -c: Установите путь к файлу конфигурации, например, если вы хотите запустить с пользовательской конфигурацией: -e:app.my.config

#### Поддержка WebDriver
```Когда вы хотите собрать JS-код, загруженный на странице, вам нужно сделать всего одно действие  установить загрузчик на WebDriverDownloader.

    Downloader = new WebDriverDownloader(Browser.Chrome);

[Смотрите полный пример](https://github.com/zlzforever/DotnetSpider/blob/master/src/DotnetSpider.Sample/JdSkuWebDriverSample.cs)

ОБСЛУЖИВАНИЕ:

1. Убедитесь, что в папке bin находится ChromeDriver.exe при попытке использования Chrome. Вы можете установить его в проект через менеджер NuGet: Chromium.ChromeDriver
2. Убедитесь, что вы уже добавили профиль \*.webdriver Firefox при попытке использования Firefox: https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles
3. Убедитесь, что в папке bin находится PhantomJS.exe при попытке использования PhantomJS. Вы можете установить его в проект через менеджер NuGet: PhantomJS

### Хранение логов и статуса в базе данных

### DotnetSpider.Hub

https://github.com/zlzforever/DotnetSpider.Hub

1. Зависимости от платформы CI, например, я использую TeamCity.
2. Зависимости от Scheduler.NET https://github.com/zlzforever/Scheduler.NET
3. Дополнительные документы продолжаются...![1](https://github.com/dotnetcore/DotnetSpider/raw/master/images/1.png)
![2](https://github.com/dotnetcore/DotnetSpider/raw/master/images/2.png)
![3](https://github.com/dotnetcore/DotnetSpider/raw/master/images/3.png)
![4](https://github.com/dotnetcore/DotnetSpider/raw/master/images/4.png)
![5](https://github.com/dotnetcore/DotnetSpider/raw/master/images/5.png)

### ВНИМАНИЕ

#### при использовании планировщика Redis, пожалуйста, обновите конфигурацию Redis:

    timeout 0
    tcp-keepalive 60

### ПОДДЕРЖИТЕ МЕНЯ

![](https://github.com/zlzforever/DotnetSpiderPictures/raw/master/pay.png)

### ПОЛЕЗНЫЕ УПРАВЛЯЕМЫЕ ОБЛАСТИ

Группа QQ: 477731655
Электронная почта: zlzforever@163.com

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

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

Введение

Проект открытой библиотеки .NET для создания параллельных витков, исходный код: https://github.com/dotnetcore/DotnetSpider; введение и руководство для начинающих: http://www.cnblogs.com/grom/p/8931650.html Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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