Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。  具体开发流程如下:

  一、确定待抓取网站

当您需要从某个网站中获取信息,但该网站未提供API或能通过程序获取信息的机制时, Scrapy可以助你一臂之力。

二、定义要抓取的数据

定义我们需要爬取的数据。在Scrapy中, 这是通过 Scrapy Items 来完成的。(在本例子中为种子文件)

我们定义的Item:

  1 # Define here the models for your scraped items
  2 #
  3 # See documentation in:
  4 # http://doc.scrapy.org/topics/items.html
  5
  6 from scrapy.item import Item, Field
  7
  8 class TutorialItem(Item):
  9     # define the fields for your item here like:
 10     # name = Field()
 11     title=Field()
 12     link=Field()
 13     desc=Field()
 14
 15
 16 

View Code

三、编写抓取数据的Spiders(核心)

定义种子初始URL、针对后续链接的规则以及从页面中提取数据的规则。

  1 #coding=utf-8
  2
  3 from scrapy.spider import BaseSpider
  4 from scrapy.selector import HtmlXPathSelector
  5 from tutorial.items import TutorialItem
  6
  7 class DmozSpider(BaseSpider):
  8     name = "dmoz"
  9     allowed_domains = ["dmoz.org"]
 10     start_urls = [
 11         "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
 12         "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
 13     ]
 14
 15     def parse(self, response):
 16         # filename = response.url.split("/")[-2]
 17         # # open(filename, 'wb').write(response.body)
 18         # with open(filename,'wb') as f:
 19         #   f.write(response.body)
 20         hxs = HtmlXPathSelector(response)
 21         sites = hxs.select('//ul/li')
 22         items = []
 23
 24         for site in sites:
 25             item = TutorialItem()
 26             item['title'] = site.select('a/text()').extract()
 27             item['link'] = site.select('a/@href').extract()
 28             item['desc'] = site.select('text()').extract()
 29             items.append(item)
 30
 31         return items
 32
 33
 34 

View Code

四、执行Spider,保存数据

转载于:https://www.cnblogs.com/dmir/p/5472891.html

第一节:Scrapy开源框架初探相关推荐

  1. 初探Scrapy爬虫框架之百度网页爬取

    初探Scrapy爬虫框架之百度网页爬取 scrapy框架及百度网页爬取与保存 一.scrapy框架简介 二.自己初使用的心得体会 1.爬虫之前明确目标 2.scrapy框架的简单使用流程 3.scra ...

  2. Karpathy更新深度学习开源框架排名:TensorFlow第一,PyTorch第二

    上周,Keras作者.谷歌研究科学家François Chollet晒出一张图,他使用Google Search Index,展示了过去三个月,ArXiv上提到的深度学习框架排行,新智元也做了报道: ...

  3. Android开源框架Afinal第一篇——揭开圣女的面纱

    Android开源框架Afinal第一篇--揭开圣女的面纱 分类: Android开源框架哪点事2013-09-02 14:25 260人阅读 评论(0) 收藏 举报 Afinal 这是Afinal在 ...

  4. HowToDoIt 开源框架爱好者组织发布第一份项目总结

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   HowToDoIt 是一群开源框架爱好者一起成立的一个组织, 组织成员有 JFinal, Nutz, t-io, ...

  5. 【CV实战】年轻人的第一个深度学习CV项目应该是什么样的?(支持13大深度学习开源框架)...

    计算机视觉发展至今,许多技术已经非常成熟了,在各行各业落地业务非常多,因此不断的有新同学入行.本次我们就来介绍,对于新手来说,如何做一个最合适的项目.本次讲述一个完整的工业级别图像分类项目的标准流程, ...

  6. (前端版)RuoYi(若依开源框架)研究第一天

    前端版RouYi(开源框架)研究第一天 项目结构 ├── build // 构建相关 ├── bin // 执行脚本 ├── public // 公共文件 │ ├── favicon.ico // f ...

  7. Scrapy框架初探

    Scrapy 貌似是 Python 最出名的爬虫框架 0. 文档 中文文档:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.ht ...

  8. Python Scrapy爬虫框架实战应用

    通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...

  9. 【v2.x OGE-example 第一节】 绘制实体

    2019独角兽企业重金招聘Python工程师标准>>> 前言: OGE即 OGEngine,是由橙子游戏开发的基于Java支持跨平台的开源游戏引,从12年4月项目成立至今已经有2年多 ...

最新文章

  1. pureftpd + pureftp-user-manager 构建磁盘配额,速率限制,web管理ftpserver
  2. python娃娃_充气娃娃?Python告诉你到底有多爽......
  3. 【机器学习基础】终于把XGBoost总结写出来了!
  4. 十八、深入Java 访问修饰符和非访问修饰符
  5. 轴固定位置_全面总结:轴零件固定方式及特点
  6. 面向科研的推荐系统Benchmark诞生!
  7. 第四次博客:循环单链表解决约瑟夫环问题
  8. vue 多点触控手势_涨姿势了!Appium也可以多点触控操作
  9. android安卓Sqlite数据库实现用户登录注册
  10. Jquery学习----选择器
  11. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_20-页面静态化-静态化测试-填写页面DataUrl...
  12. 课设题目:哈希表实现电话号码查找系统
  13. 使用Caffe框架训练模型
  14. 微信小黄鸡php,微信表情包小黄鸡含义
  15. JavaScript——数组——slice方法
  16. 【干货】PS超实用功能:美化照片
  17. 灰狼优化算法(Grey Wolf Optimizer, GWO)
  18. 大数据 -- java基础16 网络编程 TCP UDP
  19. 《华为到该炸掉研发金字塔的时候了》[转]
  20. json自动美化工具

热门文章

  1. 读取4:2:0格式YUV序列的Y分量、U分量以及V分量,并分别保存为.yuv格式(matlab实现)
  2. lisp 所在图幅号计算_图幅编号的计算
  3. matlab状态空间法算反馈阵,matlab中已知系统的状态方程怎样绘制系统阶跃响应曲线...
  4. c语言字符串每个字母加4,C语言基础:各字符型数据
  5. matlab平行因子_基于MATLAB某客车悬置系统优化与运动仿真
  6. DaNet: Decompose-and-aggregate Network for 3D Human Shape and Pose Estimation
  7. 2021年朔州市副高考试成绩查询,2021朔州市第二中学校教师成绩查询入口:http://www.shuozhou.gov.cn/ztjs/rlzy/rsks/...
  8. 系统设计(二)——TinyURL系统设计
  9. 树莓派4bpython串口通信解读数据_树莓派基础实验36:通用串口通信实验
  10. 网站代码有服务器系统限制吗,服务器内存最大大小限制(示例代码)