Scrapy导出器

scrapy-rss-exporter的Python项目详细描述


使用Scrapy框架生成rss提要。

安装

  • 使用pip

    安装scrapy-rss-exporter
    pip install scrapy-rss-exporter
    
  • 或者使用setuptools

    python setup.py install
    

用法

饲料项目

使用导出器最方便的方法是返回 RssItem从你的蜘蛛类。这个类派生自 scrapy.Item,因此它也将与其他出口商合作。

您需要设置以下键:

fromscrapy_rss_exporter.itemsimportRssItem,Enclosurerss_item=RssItem()rss_item['title']='Item title'rss_item['link']='Item url'rss_item['guid']='Item ID'rss_item['description']='Item Description'rss_item['pub_date']=Nonerss_item['enclosure']=[Enclosure(url=img,type='image/jpeg')]

pub_date字段应在 RFC882 格式。如果使用None,系统将插入当前日期 以适当的格式。enclosure字段是可选的,应该 包含Enclosure对象的列表(可能为空)。

全球出口商

要在全球设置导出程序,您需要在 FEED_EXPORTERS文件中的词典:

FEED_EXPORTERS={'rss':'scrapy_rss_exporter.exporters.RssItemExporter'}

然后可以将其用作FEED_FORMAT,并在 FEED_URI

FEED_FORMAT='rss'FEED_URI='s3://my-feeds/my-feed.rss'

注意:记住,如果使用本地文件作为输出,scrapy 将追加到一个现有文件,导致一个无效的RSS代码。你应该, 因此,请务必在运行之前删除任何现有的输出文件。 蜘蛛。s3存储没有此问题,因为 scrapy上载使用的是S3 PutObject方法。

scrapy似乎不允许将任何配置选项推送到 出口商。因此,如果要自定义提要标题和其他元数据, 您需要创建一个子类并更新FEED_EXPORTERS字典 使用新的类名:

classMyRssExporter(RssItemExporter):def__init__(self,*args,**kwargs):kwargs['title']='My RSS'kwargs['link']='https://www.mywebsite.com'kwargs['description']='My RSS Items'super(MyRssExporter,self).__init__(*args,**kwargs)

每个蜘蛛出口商

当然,您可以指定具有不同设置的不同导出器 每个蜘蛛。只需使用custom_settings字段覆盖全局 配置字段:

classMySpider(scrapy.Spider):name="my"start_urls=['https://www.mywebsite.com']custom_settings={'FEED_EXPORTERS':{'rss':'project.spiders.my_spider.MyExporter'},'FEED_FORMAT':'rss','FEED_URI':'s3://my-feeds/my-feed.rss',}defparse(self,response):pass

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在JPA多线程映射中从链接表赋值   java MultiSearchRequest请求返回响应的顺序是否与在SearchRequest中添加的顺序相同?   java如何更改setOnClickListener()中AutoCompleteTextView下拉列表中显示的列表?   java简单邮件列表   java Android代码错误。应用程序意外停止   java显示片段上的数据共享引用   在API 23及以下版本中将图像添加到recycler视图时java崩溃   java web start java_HOME   在Java上通过socket发送ASCII的正确方法是什么?   java双括号初始值设定项和数组   java改变可见性导致我的应用程序崩溃,为什么?   java链表获取retrieveAt方法   RecyclerView中存在多个对象的java错误   java在SpringMVC中定制AcceptedToController方法bean中的绑定请求参数和文件   java使用“权限调度器”添加棉花糖权限