一、导读

接着上一节的Scrapy环境搭建,这次我们开始长征的第二步,如果第一步的还没走,请出门右转(Scrapy爬虫框架环境搭建)

二、步骤

  1. 新建Scrapy项目 项目名称是scrapyDemo

scrapy startproject scrapyDemo

然后回车,就会自动生成一个项目骨架,如下图:

然后我们写爬虫的代码是在spiders里面写的。

  1. 编写spiders里面的爬虫脚本;demo如下,注释都在代码里面
import scrapy
from mySpider.items import MyspiderItemclass NextSpiderSpider(scrapy.Spider):name = "nextSpider"allowed_domains = ["lab.scrapyd.cn"]start_urls = ['http://lab.scrapyd.cn/']def parse(self, response):content = response.css('div.quote')  # 提取首页所有名言,保存至变量contentfor v in content:  # 循环获取每一条名言里面的:名言内容、作者、标签text = v.css('.text::text').extract_first()  # 提取名言author = v.css('.author::text').extract_first()  # 提取作者tags = v.css('.tags .tag::text').extract()  # 提取标签tags = ','.join(tags)  # 数组转换为字符串"""接下来进行写文件操作,每个名人的名言储存在一个txt文档里面"""file_name = '%s-语录.txt' % author  # 定义文件名,如:木心-语录.txtitem = MyspiderItem()item['text'] = textitem['author'] = authoritem['tags'] = tags# 将爬取的数据写成txt文件with open(file_name, "a+") as f:  # 不同人的名言保存在不同的txt文档,“a+”以追加的形式f.write(text)f.write('\n')  # ‘\n’ 表示换行f.write('标签:' + tags)f.write('\n-------\n')f.close()# scrapy crawl nextSpider -o items.json -s FEED_EXPORT_ENCODING=UTF-8 将数据导出来序列化变成json格式yield item# 接下来我们需要判断下一页是否存在,如果存在# 我们需要继续提交给parse执行关键看 scrapy 如何实现链接提交next_page = response.css('li.next a::attr(href)').extract_first()  # css选择器提取下一页链接if next_page is not None:  # 判断是否存在下一页"""如果是相对路径,如:/page/1urljoin能替我们转换为绝对路径,也就是加上我们的域名最终next_page为:http://lab.scrapyd.cn/page/2/"""next_page = response.urljoin(next_page)"""接下来就是爬取下一页或是内容页的秘诀所在:scrapy给我们提供了这么一个方法:scrapy.Request()这个方法还有许多参数,后面我们慢慢说,这里我们只使用了两个参数一个是:我们继续爬取的链接(next_page),这里是下一页链接,当然也可以是内容页另一个是:我们要把链接提交给哪一个函数(callback=self.parse)爬取,这里是parse函数,也就是本函数当然,我们也可以在下面另写一个函数,比如:内容页,专门处理内容页的数据经过这么一个函数,下一页链接又提交给了parse,那就可以不断的爬取了,直到不存在下一页"""yield scrapy.Request(next_page, callback=self.parse)

Scrapy框架简单爬虫demo相关推荐

  1. 使用python的scrapy框架简单的爬取豆瓣读书top250

    使用python的scrapy框架简单的爬取豆瓣读书top250 一.配置scrapy环境 1. 配置相应模块 如果没有配置过scrapy环境的一般需要安装lxml.PyOpenssl.Twisted ...

  2. 关于使用scrapy框架编写爬虫以及Ajax动态加载问题、反爬问题解决方案

    关于使用scrapy框架编写爬虫以及Ajax动态加载问题.反爬问题解决方案 参考文章: (1)关于使用scrapy框架编写爬虫以及Ajax动态加载问题.反爬问题解决方案 (2)https://www. ...

  3. 一个scrapy框架的爬虫(爬取京东图书)

    我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...

  4. python爬虫之使用Scrapy框架编写爬虫

    转自:http://www.jb51.net/article/57183.htm 前面的文章我们介绍了Python爬虫框架Scrapy的安装与配置等基本资料,本文我们就来看看如何使用Scrapy框架方 ...

  5. python爬取京东书籍_一个scrapy框架的爬虫(爬取京东图书)

    我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...

  6. python3 scrapy框架,Python3爬虫(十八) Scrapy框架(二)

    对Scrapy框架(一)的补充 Infi-chu: Scrapy优点: 提供了内置的 HTTP 缓存 ,以加速本地开发 . 提供了自动节流调节机制,而且具有遵守 robots.txt 的设置的能力. ...

  7. 解析python网络爬虫pdf 黑马程序员_正版 解析Python网络爬虫 核心技术 Scrapy框架 分布式爬虫 黑马程序员 Python应用编程丛书 中国铁道出版社...

    商品参数 书名:Python应用编程丛书:解析Python网络爬虫:核心技术.Scrapy框架.分布式爬虫 定价:52.00元 作者:[中国]黑马程序员 出版社:中国铁道出版社 出版日期:2018-0 ...

  8. 用scrapy框架写爬虫

    爬虫可以发送给引擎的两种请求: # 1.url:# (爬虫)yield scrapy.Request -> 引擎 -> 调度器(发送给调度器入队) -> 引擎(调度器出队请求于引擎) ...

  9. Python:Pycharm如何使用scrapy框架做爬虫?

    因为入门python以来一直使用pycharm,所以对着黑白的DOS不习惯,所以此次来实现使用pycharm进行实现使用scrapy框架 ①pip install scrapy(首先安装scrapy第 ...

最新文章

  1. 图算法在斗鱼反作弊中的实践
  2. 文件传输服务器多目录,node ftp 模块 如何把本地多个文件夹或者文件上传到服务器...
  3. mybatis中LIKE模糊查询的几种写法以及注意点(亲测第三种CONCAT()函数的)
  4. 一般处理程序读写session
  5. 南岸焊接机器人厂_造船三部高效焊接工艺技术年鉴
  6. 第一百二十六期:代码以外的生存之道,献给每位入了坑的码农
  7. Python数据挖掘与机器学习技术入门实战
  8. 关于C/C++中的几个关键字(C基础)
  9. 2018java计算机二级考试试题和答案,2018年计算机等级考试二级JAVA习题答案(1)
  10. (转)什么是Cookies详解
  11. 【SpringBoot_ANNOTATIONS】自动装配 01 @Autowired @Qualifier @Primary
  12. 渗透测试-安卓APP经验总结
  13. 谷歌浏览器网页翻译失效,无法翻译成中文,且谷歌翻译api报404问题
  14. 【简历优化】如何写好项目的亮点难点?项目经历怎么写最好?
  15. 英语学习/词典App分析-团队作业(五)
  16. Windows电脑垃圾的清理
  17. OPPO开放平台移动应用认领
  18. 程序员需知的9个编程学习官网,建议收藏
  19. 列表中的元素进行统计数量
  20. PHP socket 连接 Socket server

热门文章

  1. iOS越狱之程序获得root权限
  2. 压力变送器如何安装使用?
  3. 使用ADAM将Oracle数据库迁移至阿里云数据库PolarDB
  4. 计算机音乐制作专业艺考,音乐艺考的专业有哪些
  5. JAVA WEB应用目录
  6. 学以致用,光棍极客通过大数据搞定女朋友
  7. Http的使用——GET
  8. OpenJudge - 04:石头剪子布
  9. 智慧城市交通系列之车辆逆行(四)
  10. 图像加密算法——Logistic混沌置乱