Scrapy 使用 XMLFeedSpider 来分析 XML 源
来源:互联网 发布:java http下载文件 编辑:程序博客网 时间:2024/06/13 04:09
RSS 是什么?
RSS 是一种信息聚合技术,可以让信息的发布和共享更为高效、便捷。
RSS 是基于 XML 标准的。
韦玮老师的新浪博客地址:http://blog.sina.com.cn/weiweihappy321
订阅地址:http://blog.sina.com.cn/rss/1615888477.xml
我们新创建一个项目:
scrapy startproject myxml
我们看一看可以使用的模板有哪些?
scrapy genspider -l
然后走到项目的目录下,生成 spider 的代码:
scrapy genspider -t xmlfeed myxmlspider sina.com.cn
接下来,我们在 items 中添加如下代码:
import scrapyclass MyxmlItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() # 存储文章标题 title = scrapy.Field() # 存储对应的链接 link = scrapy.Field() # 存储对应文章的作者 author = scrapy.Field()
下面,我们对这个 Spider 文件进行修改:
# -*- coding: utf-8 -*-from scrapy.spiders import XMLFeedSpiderfrom myxml.items import MyxmlItemclass MyxmlspiderSpider(XMLFeedSpider): name = 'myxmlspider' allowed_domains = ['sina.com.cn'] # 设置要分析的 XML 文件地址 start_urls = ['http://blog.sina.com.cn/rss/1615888477.xml'] iterator = 'iternodes' # you can change this; see the docs # 此时将开始迭代的节点设置为第一个节点 rss itertag = 'rss' # change it accordingly def parse_node(self, response, selector): i = MyxmlItem() i['title'] = selector.xpath("/rss/channel/item/title/text()").extract() i['link'] = selector.xpath("/rss/channel/item/link/text()").extract() i['author'] = selector.xpath("/rss/channel/item/author/text()").extract() #i['url'] = selector.select('url').extract() #i['name'] = selector.select('name').extract() #i['description'] = selector.select('description').extract() # 通过 for 循环以遍历出提取出来的存在在 item 中的信息并输出 for j in range(len(i['title'])): print("第 %s 篇文章" % str(j+1)) print("标题是:%s" % i['title'][j]) print("对应链接是:%s"%i['link'][j]) print("对应作者是:%s"%i['author'][j]) print("-"*20) return i
接下来,就可以通过:
scrapy crawl myxmlspider --nolog
运行这个爬虫程序。
运行结果:
第 1 篇文章标题是:精通Python网络爬虫-新书介绍对应链接是:http://blog.sina.com.cn/s/blog_6050805d0102wr72.html对应作者是:韦玮pig--------------------第 2 篇文章标题是:襄阳美对应链接是:http://blog.sina.com.cn/s/blog_6050805d01016wxn.html对应作者是:韦玮pig--------------------第 3 篇文章标题是:春至华夏对应链接是:http://blog.sina.com.cn/s/blog_6050805d01014ak1.html对应作者是:韦玮pig--------------------第 4 篇文章标题是:思对应链接是:http://blog.sina.com.cn/s/blog_6050805d010128nj.html对应作者是:韦玮pig--------------------第 5 篇文章标题是:春影对应链接是:http://blog.sina.com.cn/s/blog_6050805d010120sp.html对应作者是:韦玮pig--------------------第 6 篇文章标题是:春行对应链接是:http://blog.sina.com.cn/s/blog_6050805d01011xpl.html对应作者是:韦玮pig--------------------第 7 篇文章标题是:浅月对应链接是:http://blog.sina.com.cn/s/blog_6050805d0100wc7n.html对应作者是:韦玮pig--------------------第 8 篇文章标题是:寻对应链接是:http://blog.sina.com.cn/s/blog_6050805d0100ufqy.html对应作者是:韦玮pig--------------------第 9 篇文章标题是:红梅对应链接是:http://blog.sina.com.cn/s/blog_6050805d0100u2o1.html对应作者是:韦玮pig--------------------第 10 篇文章标题是:残夜对应链接是:http://blog.sina.com.cn/s/blog_6050805d0100u1ao.html对应作者是:韦玮pig--------------------
阅读全文
0 0
- Scrapy 使用 XMLFeedSpider 来分析 XML 源
- 四.scrapy XMLFeedSpider用法
- XMLFeedSpider例子
- 第二人生的源码分析(六十九)使用LLXmlTree类来分析XML配置文件
- 蔡军生先生第二人生的源码分析(六十九)使用LLXmlTree类来分析XML配置文件
- 在scrapy中使用django model来存储数据
- 使用Scrapy来爬取自己的CSDN文章
- 使用Scrapy来爬取自己的CSDN文章 (2)
- 使用Scrapy来爬取自己的CSDN文章
- 使用xml来显示数学公式
- 使用xml来显示数学公式
- 使用CSS来显示XML
- 使用 SAX 来解析XML
- perl使用xml::simple来读写xml
- perl使用xml::simple来读写xml
- scrapy使用
- 使用XPath分析XML
- 用scrapy爬xml
- 简单的C语言链表(含输入、输出功能)
- 系统编程之文件的操作day1
- jQuery中动画animate(下)
- linux下安装svn记录
- UNITY3D C#热点测试打印函数调用超过一定时间的调用
- Scrapy 使用 XMLFeedSpider 来分析 XML 源
- CodeForces 719B
- 《思绪》
- Java多线程--JVM执行之使用HSDIS插件分析JVM代码执行细节
- Java多线程--Monitor对象(一)
- jQuery中停止动画stop
- 如何在 Python3 中操作数据
- Java多线程--Monitor对象(二)
- Spring总结