[Объявление]
С возрастом начинаешь меньше выдерживать стресс, поэтому решил продавать чай. Любители чая, приглашаю вас узнать, как правильно заварить вкусный чай.
Поп-чай https://www.paopaocha.top/
RuiJi Scraper — это плагин браузера на основе выражений RuiJi с визуальным редактированием правил и генерацией выражений RuiJi для RuiJi.Net. firefox chrome
Мы не можем вернуть пожертвования через Open Collective, поэтому нам пришлось отключить серверы представлений и документов ruiji.net
Если вы хотите возобновить проект по сбору пожертвований, свяжитесь с нами по электронной почте 416803633@qq.com
RuiJi.Net — это распределенная система парсинга, написанная на .NET Core.
RuiJi.Net — это автономный веб-API, использующий Microsoft.AspNetCore.Owin. Основные возможности включают распределенный парсер, распределенный извлечение данных и управление cookies.
RuiJi.Net поддерживает опрос IP адресов, используя публичный сетевой адрес сервера и прокси-сервер.
Сборка http://doc.ruijihg.com/
var crawler = new RuiJiCrawler();
var request = new Request("https://www.baidu.com");
var response = crawler.Request(request);
var crawler = new RuiJiCrawler();
var request = new Request("https://www.baidu.com");
request.Ip = "192.168.31.196";
var response = crawler.Request(request);
var crawler = new RuiJiCrawler();
var request = new Request("https://www.baidu.com");
request.Proxy = new RequestProxy("223.93.172.248", 3128);
var response = crawler.Request(request);
var crawler = new RuiJiCrawler();
var request = new Request("https://www.oschina.net/blog");
var response = crawler.Request(request);
var content = response.Data.ToString();
var parser = new RuiJiParser();
var eb = parser.ParseExtract("css a.blog-title-link[href]\nexp https://my.oschina.net/*/blog/*");
var result = RuiJiExtractor.Extract(content, eb.Block);
var crawler = new RuiJiCrawler();
var request = new Request("http://www.ruijihg.com/archives/category/tech/bigdata");
var response = crawler.Request(request);
var content = response.Data.ToString();
var parser = new RuiJiParser();
var eb = parser.ParseExtract(@"[tile]\ncss article:html\n[meta]\n#title\ncss .entry-header:text\n#summary\ncss .entry-header + p:text ex /Read more »/ -e");
var result = RuiJiExtractor.Extract(content, eb.Block);
var crawler = new RuiJiCrawler();
var request = new Request("https://my.oschina.net/zhupingqi/blog/1826317");
var response = crawler.Request(request);
var content = response.Data.ToString();
var parser = new RuiJiParser();
var eb = parser.ParseExtract(@"[meta]\n#title\ncss h1.header:text\n#author\ncss div.blog-meta .avatar + span:text\n#date\ncss div.blog-meta > div.item:first:text regS /发布于/ 1\n#words_i\ncss div.blog-meta > div.item:eq(1):text regS / / 1\n#content\ncss #articleContent:html");
var result = RuiJiExtractor.Extract(content, eb.Block);
var crawler = new RuiJiCrawler();
var request = new Request("http://img10.jiuxian.com/2018/0111/cd51bb851410404388155b3ec2c505cf4.jpg");
var response = crawler.Request(request);
var ex = response.Extensions;
Скачайте ZooKeeper с официальных зеркал Apache http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.12/
Добавьте тот же файл zoo_sample.cfg в папку conf и переименуйте его в zoo.cfg. Измените dataDir на ваш.
Убедитесь, что установлено средство выполнения Java.
Запустите bin/zkServer.cmd в папке zookeeper.
Запустите ZooKeeper.
Скомпилируйте RuiJi.Net.Cmd и запустите RuiJi.Net.Cmd.exe.
Если вы видите следующую информацию:
Сервер запущен по адресу http://x.x.x.x:x прокси x.x.x.x:x готов к запуску! попытка подключения к серверу ZooKeeper: x.x.x.x:2181 соединение с сервером ZooKeeper установлено!
то запуск службы завершен успешно!
var request = new Request("http://www.ruijihg.com/%e5%bc%80%e5%8f%91/");
var response = Crawler.Request(request);
if (response.StatusCode != System.Net.HttpStatusCode.OK) return;
var content = response.Data.ToString();
var block = new ExtractBlock();
block.Selectors = new List<ISelector>
{
new CssSelector(".entry-content",CssTypeEnum.InnerHtml)
};
block.TileSelector = new ExtractTile
{
Selectors = new List<ISelector>
{
new CssSelector(".pt-cv-content-item",CssTypeEnum.InnerHtml)
}
};
block.TileSelector.Metas.AddMeta("title", new List<ISelector> {
new CssSelector(".pt-cv-title")
});
block.TileSelector.Metas.AddMeta("url", new List<ISelector> {
new CssSelector(".pt-cv-readmore","href")
});
var r = Extractor.Extract(new ExtractRequest {
Block = block,
Content = content
});
Выражения RuiJi позволяют быстро добавлять правила извлечения страниц. Эти выражения просты и понятны. Перед тем как начать, важно понять модель правил RuiJi.Net.
Выражения RuiJi используют структуру, показанную на рисунке выше, чтобы извлекать нужные страницы. Единицей измерения является Block, как показано ниже.
Selectors — это список селекторов. Tiles — это область, которая должна быть повторно извлечена. Metas — это метаданные, которые должны быть извлечены. Blocks — это подблоки, которые должны быть извлечены внутри Block.
Для того чтобы извлечь http://www.ruijihg.com/разработка, вам нужно сначала изучить структуру страницы. Вы можете использовать F12, чтобы просмотреть структуру страницы.
Во-первых, убедитесь, что результат выборки Block уникален.
Определение Block может выглядеть так:
#content
css .pt-cv-view:ohtml
Продолжаем добавлять tiles:
[tile]
#tiles
css .pt-cv-content-item:ohtml
[meta]
#title
css .pt-cv-title:text
#content
css .pt-cv-content:html
ex 阅读更多... -e
Вы заметите \t
, потому что как Block, так и Tile содержат метаданные, а значит часть селектора Tile и метаданные Tile помечаются \t
как текущий флаг Tile.
Полная структура описания Block выглядит так:
[Block]
#blockname
selector
[blocks]
@subblockname1
@subblockname2
[tile]
#tilename
tile selector
[meta]
#meta1
selector
#meta2
selector
```## Административный UI



## Контакты
Свяжитесь со мной по любым вопросам
416803633@qq.com
мой веб-сайт: www.ruijihg.com
QQ группа: 545931923
https://github.com/zhupingqi/RuiJi.Net
https://gitee.com/zhupingqi/RuiJi.Net
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )