做一个有产品思维的研发:Scrapy安装
每天10分钟,解决一个研发问题。
如果你想了解我在做什么,请看《做一个有产品思维的研发:课程大纲》传送门:https://www.cnblogs.com/hunttown/p/10490965.html
今天我们说一下Scrapy爬虫:
Scrapy 在 Python 2.7 和 Python 3.3 或者更高版本上运行,他是用纯 Python 编写的,并且依赖于一些关键的 Python 包(其中包括):
1、lxml ,一个高效的XML和HTML解析器
2、parsel , 一个基于 lxml 的 HTML / XML 数据提取库
3、w3lib ,一个用于处理URL和网页编码的多用途助手
4、twisted, 一个异步的网络框架
5、cryptography 和 pyOpenSSL ,以处理各种网络级安全需求
Scrapy 经过测试支持的最低版本为:
a. Twisted 14.0
b. lxml 3.4
c. pyOpenSSL 0.14
一、推荐使用Linux安装,大家可以安装一个虚拟机来做
二、Lniux环境安装完毕以后,还需要安装pip,这个是下面要用到的命令
三、安装依赖
[MyCentOS6 ~]$ yum install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
四、由于pyphon3在安装pip的时候安装好了,这里我们直接安装scrapy
[MyCentOs6 ~]$ pip install scrapy
五、安装完以后还需要安装一些将来要用到的软件
六、创建一个爬虫项目
[MyCentOs6 ~]$ scrapy startproject tutorial
然后在 tutorial / spiders 目录下创建 quotes_spider.py 文件:
import scrapy class QuotesSpider(scrapy.Spider): name = "quotes" def start_requests(self): urls = [ 'http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/', ] for url in urls: yield scrapy.Request(url=url, callback=self.parse) def parse(self, response): page = response.url.split("/")[-2] filename = 'quotes-%s.html' % page with open(filename, 'wb') as f: f.write(response.body) self.log('Saved file %s' % filename)
上面的 Spider 继承了 scrapy.Spider 并定义了一些属性和方法:
a. name:标识爬虫。它在项目中必须是唯一的,也就是说,您不能为不同的 Spider 设置相同的名称。
b. start_requests():必须返回一个可迭代的 Requests(您可以返回一个 request 列表或写一个生成器函数),Spider将开始抓取。后续请求将从这些初始请求中连续生成。
c. parse():被调用来处理 response 的方法, response 由每个 request 下载生成。 response 参数是一个 TextResponse 的实例,它保存页面内容,并具有更多有用的方法来处理它。
运行爬虫:
[MyCentOS6 ~]$ scrapy crawl quotes
如果你想把数据存储到一个文件中:
[MySentOS6 ~]$ scrapy crawl quotes -o quotes.json
今日总结:
1. 最初的的方式是使用urllib2,读取url解析html,然后通过正则表达式匹配出想要的数据。
2. 现在的Scrapy,Python开发的一个快速、高层次的web抓取框架,用于抓取web站点并从页面中提取结构化的数据,Scrapy的用途非常广泛。
- UI设计师产品构思过程需要有一个系统思维方向
- 一个程序员的产品思维
- 浅谈技术管理:做一个有产品思维的程序员
- 码农的产品思维培养第2节----一个需求的奋斗史(人人都是产品经理)
- UI设计师产品构思过程需要有一个系统思维方向
- 一个嵌入式产品的从研发到量产的流程
- 少林寺的组织机构对研发企业组织结构的启示-罗汉堂是一个产品开发部门
- 安装scrapy时遇到的一个错误
- 安装 Intel RST (Intel Rapid Storage Technology) 磁盘阵列驱动时,提示 “此产品有一个挂起的重新启动” 的解决方法
- UI设计师产品构思过程中需要有一个系统思维方向
- 以产品思维看微信支付如何做出一个好产品
- 一个嵌入式产品的从研发到量产的流程(作者:gooogleman@foxmail.com)
- 通过订单及售后流程的不同分析思路,看产品与研发思维的区别
- 一个嵌入式产品的从研发到量产的流程(作者:gooogleman@foxmail.com)
- 迅雷创始人程浩:创业公司5招做好内部创新(组建小型敢死队:一共3个人,一个产品经理,两个研发;腾讯做不做这个项目是一个伪命题;让用户来验证,而不是相反 good)
- 码农的产品思维培养第2节----一个需求的奋斗史(人人都是产品经理)
- ubuntu下安装scrapy并做一个demo
- 新研发一个产品:HDMI信号转化网络信号传输,用海思HI3516C方案实现。
- Odoo与浪潮合资研发PS Cloud之如何在一个产品上设置几个供应商?
- 关于python scrapy的安装一个问题 No Moudle named cssselect