semvec/pypi-packages huggingface dataset:
oarepo-sitemaps 1.0.0
OARepo rdm records data model
License: MIT

OARepo sitemaps
====================
[![image][]][1]
[![image][2]][3]
[![image][4]][5]
[![image][6]][7]

Instalation
----------
```bash
    pip install oarepo-sitemaps
```

Usage
----------
OARepo module that creates sitemap for a repository. Sitemap includes only records, that are in state "published" and can be viewed by public. 
Created sitemap is accessible on ```server/sitemap.xml``` url.

Configuration
-------------
Default number of record per one sitemap is 10000, this can be changed in configuration with ```'SITEMAP_MAX_URL_COUNT``` set to a different number.

Example
-------
```xml
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
 <url>
  <loc>http://localhost:5000/cesnet/records/1</loc>
  <lastmod>2021-05-24</lastmod>
  <changefreq>weakly</changefreq>
  <priority>1</priority>
 </url>
 <url>
  <loc>http://localhost:5000/cesnet/records/2</loc>
  <lastmod>2021-05-24</lastmod>
  <changefreq>weakly</changefreq>
  <priority>1</priority>
 </url>
</urlset>
```
 [image]: https://img.shields.io/travis/oarepo/oarepo-sitemaps.svg
  [1]: https://travis-ci.com/github/oarepo/oarepo-sitemaps
  [2]: https://img.shields.io/coveralls/oarepo/oarepo-sitemaps.svg
  [3]: https://coveralls.io/r/oarepo/oarepo-sitemaps
  [4]: https://img.shields.io/github/license/oarepo/oarepo-sitemaps.svg
  [5]: https://github.com/oarepo/oarepo-documents/blob/master/LICENSE
  [6]: https://img.shields.io/pypi/v/oarepo-sitemaps.svg
  [7]: https://pypi.org/pypi/oarepo-sitemaps

<!--
Copyright (C) 2020 CESNET z.s.p.o.

oarepo-sitemaps is free software; you can redistribute it and/or modify it
under the terms of the MIT License; see LICENSE file for more details.
-->

# Changes 

## Version 1.0.0 

- Initial public release.
Livy-Submit 1.1.0
Livy-Submit enables you to send your python files to a spark cluster using Livy running on edge node
License: MIT

# Livy-Submit

With Livy-Submit, you can easily send pyspark files to run on your spark 
cluster in the case you don't have access to spark-submit on an edge-node
but you do have access to a Livy service on an edge-node.

You can find more information, including a sample session on https://www.guidodiepen.nl/2019/06/submitting-pyspark-jobs-to-livy-with-livy_submit/

## Prerequisites

The application is build using the requests library. It also can make use
of keyring to store the password for connecting to your edgenode (in order
for you not to have it hardcoded anywhere else).
scrapy-rabbit 0.2.9
在scrapy的基础上进行修改，使用了异步请求，加快采集速度，并与rabbitmq结合，实现了断点续爬，与防止漏采
License: MIT
Requires Python: >=3.4.0

# Scrapy-Rabbit

<p align="center">
    <img src ="https://img.shields.io/pypi/v/tqsdk?color=blueviolet">
    <img src ="https://img.shields.io/pypi/pyversions/Scrapy.svg" />
</p>

## 1.简介

基于Scrapy爬虫框架与RabbitMQ消息队列结合，一款新的分布式采集框架



##  2.快速入门

> 1. 安装
>
>    `pip install scrapy_rabbit`
>
> 2. 创建项目
>
>    `scrapy_rabbit startproject ProjectName`
>
>    - ProjectName：要创建的项目名称
>
> 3. 创建爬虫
>
>    `scrapy_rabbit genspider SpidersClass SpiderName Url`
>
>    - SpidersClass：爬虫分类
>
>    - SpiderName：爬虫名字
>
>    - Url：初始连接
>
>    是否使用代理以及是否清空队列都可以在Spider中单独配置  
>
> 4. 修改配置
>
>    在conf下config.ini中设置rabbit的链接方式即可。
>
> 5. 指定运行方式
>
>    ![scrapy_rabbit_run.png][1]
>
>    run方法需要传一个列表，列表里第一个元素为当前`爬虫分类名字`，第二元素为`爬虫名字`，第三元素为`运行模式`（auto(自动)：所有请求生产完成后直接开始消费。m(生产模式)：只生产不消费。w(消费模式)：只消费不生产），第四元素为`并发量`。
>
> 6. 运行
>    接下来就可以直接右键运行，或者使用命令行`python spider.py`运行，spider.py为当前爬虫文件。
>
> 7. 整体目录结构
>
>    ![scrapy_rabbit_tree.png][3]





## 3.架构图

![scrapy_rabbit.png][2]

>Spider（爬虫）：负责处理所有Responses，从中分析提取数据，获取Item字段需要的数据，并将需要跟进的URL提交给引擎，再次进入RabbitMQ
>
>Engine（引擎）：框架核心，负责Spider、RabbitMQ、Downloader、ItemPipeline中间的通讯，信号、数据传递等
>
>RabbitMQ（消息队列）：负责接受引擎发送过来的Request请求，并按照指定优先级存入消息队列
>
>Downloader（下载器）：负责下载RabbitMQ中所有Requests请求，并将其获取到的Responses交还给Engine，由引擎交给Spider来处理
>
>ItemPipeline（管道）：负责处理Spider中获取到的Item，并进行进行后期处理（详细分析、过滤、存储等）的地方
>
>Downloader Middlewares（下载中间件）：介于Scrapy引擎和下载器之间的中间件，主要是处理Scrapy引擎与下载器之间的请求及响应
>
>Spider Middlewares（Spider中间件）：介于Scrapy引擎和爬虫之间的中间件，主要工作是处理蜘蛛的响应输入和请求输出



## 4.运行流程

> 1. Spider将所有Requests发送给Engine
>
> 2. 引擎把Url封装成一个请求(Request)传给RabbitMQ，RabbitMQ将所有的请求按照优先级保存下来
> 3. 下载器把资源下载下来，并封装成应答包(Response)交给Spider，如果请求失败则重新放入到RabbitMQ中
> 4. 爬虫解析Response
> 5. 若是解析出实体（Item）,则交给实体管道进行进一步的处理
> 6. 若是解析出的是链接（Url）,则把Url交给引擎，封装成一个请求(Request)传给RabbitMQ等待下载



## 5.监控截图

![rabbit.png][4]



## 6.Todo

- [x] 生产结束后自动消费

- [x] Spiders里可以指定ItemPipeline

- [x] 请求失败重新返回到消息队列

- [ ] 支持Middlewares

- [x] 与Scarpy兼容

- [ ] 可以在Spider里指定RabbitMQ队列

- [ ] Log日志需要整理

- [ ] 脚本采集信息以及日志存入MongoDB

- [ ] 使用平台化来开发爬虫

- [ ] 对当前项目下所有爬虫进行控制

  

[1]: https://elanpy.com/usr/uploads/2021/03/scrapy_rabbit_run.png
[2]: https://elanpy.com/usr/uploads/2021/03/scrapy_rabbit.png
[3]: https://elanpy.com/usr/uploads/2021/03/scrapy_rabbit_tree.png
[4]: https://elanpy.com/usr/uploads/2021/03/rabbitmq.png