前面写了学习CrawlSpider遇到的问题后,今天学XMLFeedSpider又出现了启动后没爬取到数据,但又不报错的情况

经过排查,发现又是一个粗心大意的错误:

class SpiderUserXMLFeedSpider(XMLFeedSpider):

   name = 'xmlspider'
allowed_domains=['cnblogs.com']#这里敲少了一个s
start_urls=['http://feed.cnblogs.com/blog/u/269038/rss']
iterator = 'html'
itertag = 'entry' 另外记录一下,这种结构:
<entry>
<id>http://www.cnblogs.com/qiyeboy/p/9296038.html</id>
<title type="text">基于HTTPS的中间人攻击-BaseProxy - 七夜的故事</title>
<summary type="text">
前言 在上一篇文章 "BaseProxy:异步http/https代理" 中,我介绍了自己的开源项目BaseProxy,这个项目的初衷其实是为了渗透测试,抓包改包。在 知识星球 中,有很多朋友问我这个项目的原理及实现代码,本篇文章就讲解一下和这个项目相关的HTTPS的中间人攻击。 HTTPS隧道代理
</summary>
<published>2018-07-11T10:16:00Z</published>
<updated>2018-07-11T10:16:00Z</updated>
<author>
<name>七夜的故事</name>
<uri>http://www.cnblogs.com/qiyeboy/</uri>
</author>
<link rel="alternate" href="http://www.cnblogs.com/qiyeboy/p/9296038.html"/>
<link rel="alternate" type="text/html" href="http://www.cnblogs.com/qiyeboy/p/9296038.html"/>
<content type="html">
【摘要】前言 在上一篇文章 "BaseProxy:异步http/https代理" 中,我介绍了自己的开源项目BaseProxy,这个项目的初衷其实是为了渗透测试,抓包改包。在 知识星球 中,有很多朋友问我这个项目的原理及实现代码,本篇文章就讲解一下和这个项目相关的HTTPS的中间人攻击。 HTTPS隧道代理 <a href="http://www.cnblogs.com/qiyeboy/p/9296038.html" target="_blank">阅读全文</a>
</content>
</entry>
 
在匹配数据时,因为设置了起始标签是itertag = 'entry'所以xpath匹配只需这样写:
node.xpath('id/text()').extract()[0]
node.xpath('title/text()').extract()[0]
node.xpath('summary/text()').extract()[0]

不需要在id,title ,summary前面加/

还有在我查这个爬不到数据的问题时,还找到一篇不错的文章:https://blog.csdn.net/lw_power/article/details/77919533
这里讲了使用模板来生成spider的代码,用模板的话就不用所有代码都敲一遍,就设置一下items.py,然后去Spider.py里修改一下allowed_domains ,start_urls的链接,
并补充关键代码(其实自动生成的代码注释有提示你应该怎么写代码)

【Spider】学习使用XMLFeedSpider的更多相关文章

  1. 七月在线爬虫班学习笔记(五)——scrapy spider的几种爬取方式

    第五课主要内容有: Scrapy框架结构,组件及工作方式 单页爬取-julyedu.com 拼URL爬取-博客园 循环下页方式爬取-toscrape.com Scrapy项目相关命令-QQ新闻 1.S ...

  2. python学习之-用scrapy框架来创建爬虫(spider)

    scrapy简单说明 scrapy 为一个框架 框架和第三方库的区别: 库可以直接拿来就用, 框架是用来运行,自动帮助开发人员做很多的事,我们只需要填写逻辑就好 命令: 创建一个 项目 : cd 到需 ...

  3. [Todo] Nodejs学习及Spider实验(包括php入门学习、React入门学习)

    /Users/baidu/Documents/Data/Interview/Web-Server开发 深入浅出Node.js-f46c http://blog.csdn.net/u012273376/ ...

  4. Scrapy框架学习(三)Spider、Downloader Middleware、Spider Middleware、Item Pipeline的用法

    Spider有以下属性: Spider属性 name 爬虫名称,定义Spider名字的字符串,必须是唯一的.常见的命名方法是以爬取网站的域名来命名,比如爬取baidu.com,那就将Spider的名字 ...

  5. Nodejs全站开发学习系列 & 深入浅出Node学习笔记 & Spider抓取

    https://course.tianmaying.com/node 这个系列的文章看起来很不错,值得学习一下. /Users/baidu/Documents/Data/Interview/Web-S ...

  6. Scrapy学习-25-Scrapyd部署spider

    Scrapyd部署爬虫项目 github项目  https://github.com/scrapy/scrapyd    官方文档  http://scrapyd.readthedocs.org/  ...

  7. 学习Spider 了解 Scrapy的流程

    Scrapy 先创建项目 在windows下 scrapy startproject      myproject         #myproject是你的项目名称 cd 项目名称 scrapy g ...

  8. scrapy 4 学习 crawl spider

    前情提要: 一:图片懒加载(面对图片懒加载怎么办) ---用selenium设置图片加载的位置 --- 分析懒加载的属性,直接获取 二: 如何提高scrapy的爬取效率 增加并发:默认scrapy开启 ...

  9. Scrapy学习篇(五)之Spiders

    Spiders Spider类定义了如何爬取某个网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item).简而言之,Spider就是你定义爬取的动作及分析某个网 ...

随机推荐

  1. 运维工具Ansible安装部署

    http://blog.51cto.com/liqingbiao/1875921 centos7安装部署ansible https://www.cnblogs.com/bky185392793/p/7 ...

  2. exe加载DLL的时候会有一系列的搜索路径

    假如安全DLL搜索模式启用,搜索顺序如下: 1. 应用程序所在的路径 2. Windows SYSTEM目录.通过调用GetSystemDirectory函数可以获取这个目录的路径. 3. 16位系统 ...

  3. MySQL 中 mysqld_safe 与 mysqld 区别,以及 mysqld_safe 的使用介绍

    [mysqld_safe 与 mysqld 区别] 直接运行mysqld程序来启动MySQL服务的方法很少见 mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启 ...

  4. linux 开关机指令

    shutdown -h now  现在关机 shutdown -h  1  1分钟后电脑关机 su  切换 用户 halt 关机 reboot 重启 sync :保存

  5. 20165304学习基础和C语言基础调查

    20165304学习基础和C语言基础调查 你有什么技能比大多人(超过90%以上)更好? 我觉得自己应该算是一个比较宅的人,因为在高中的时候我在外边租房子住,我爸妈都去上班,平时就只有我自己,当然只能自 ...

  6. vue中修改了数据但视图无法更新的情况[转载]

    我们有时候常碰到vue中明明修改了数据,但是视图无法更新,因此我总结了一点点碰到此类的情况: 1.v-for遍历的数组,当数组内容使用的是arr[0].xx =xx更改数据,vue无法监测到 数组数据 ...

  7. day15-函数进阶

    1.函数嵌套 多个函数嵌套在一起即为函数嵌套 在调用函数时,函数需在调用之前定义,如果函数在调用之后才定义,则不能被成功调用.当定义多个函数时,函数名称不能相同,否则后定义的函数会将之前的函数覆盖,即 ...

  8. day11-元组与字典

    1.元组Tuple与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用中括号.元组可以查询,可以使用内置函数count.index.但是不能修改.增加.删除(儿子不能,孙子有可能). ...

  9. jsfl 将库中声音放置到时间轴上

    setBrokenFrames("cz1.mp3",2); /**/ /*<--------------将库中声音放置到时间轴上------------->*/ /** ...

  10. EventBus 源码学习

    打开一看,原来相关代码并不多,下面看下细节 主要方法也就是注册,取消注册和发送事件,可以看到两个主要的变量就是subscribers和dispatcher public void register(O ...