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