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将txt文件读入ObjectList   java如何在jQuery中用JSON数据作为ajax响应填充dropdownlist   javaant和jar目录结构   使用Gou Hall算法的java骨架化不起作用   当输入的editText超过10位时,java应用程序停止   无法反序列化'java'的实例。节点中的lang.String`。js服务器到卡夫卡连接   java检查xml标记是否包含注释   格式化文本的Java方法?   java我希望对整个文件有效地应用正则表达式   如何从PDF文件中删除所有图像/图形,并仅在Java中保留文本?   如何在java中使用Linux mincore()   java将Long/ULong转换为带填充零的无符号十六进制字符串   Java Spring SAML无法向IDP发送正确的请求(我的SP在负载平衡器后面)   Java操作数类型错误   java无法在ubuntu中设置类路径   使用Spring安全性初始化应用程序时发生java错误:未找到net/sf/ehcache/ehcache   音频如何在java中以毫秒X播放声音   以随机顺序打印数组中的字符串(java)   多线程如何获取java中的所有许可?