做一个有产品思维的研发: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安装,大家可以安装一个虚拟机来做

1、VMWare安装CentOS 6.5教程

二、Lniux环境安装完毕以后,还需要安装pip,这个是下面要用到的命令

2、CentOS6.5安装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

五、安装完以后还需要安装一些将来要用到的软件

1、Linux安装simplejson教程

2、Linux下安装pymysql教程

3、Linux下安装jieba教程

4、Linux下安装Gensim教程

5、Linux下安装whl文件

六、创建一个爬虫项目

[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的用途非常广泛。

原文地址:https://www.cnblogs.com/hunttown/p/10781633.html

时间: 2024-08-24 17:44:38

做一个有产品思维的研发:Scrapy安装的相关文章

做一个有产品思维的研发:逻辑设计

每天10分钟,解决一个研发问题. 如果你想了解我在做什么,请看<做一个有产品思维的研发:课程大纲>传送门:https://www.cnblogs.com/hunttown/p/10490965.html 今天我们说一下逻辑设计问题: 对于逻辑设计的形式和它的出场顺序有很大的争议. 1.先出一下它的设计形式 在很多人的印象中,逻辑设计应该以“E-R”图或“UML”图出场,所以很多人在进行逻辑设计的时候,都会按教材上所写的一板一眼的做. 我想说的是:完全没有必要 为什么? 一是画得费劲,浪费太多时

做一个具有阳光思维的人

做一个具有阳光思维的人,任何时候,利用阳光的心态去看待别人的每隔举动,利用阳光的思维去思考和人相处的过程. 工作久了突然发现我们已经走的太远,以至于忘了为了什么而出发,以前绝对是因为喜爱,可现在却参杂了一点生活因素在里面.但是有一点是不会改变的,就是会一直走向这个行业,做一个阳光道德的从业者. 以前认为别人尊敬我,是因为我很优秀,慢慢的我懂了,别人尊敬我是因为别人很优秀,所以从一开始就要用阳光思维去看待每一件事情,这样自己才会是优秀的. 工作每个月的任务都很重,工作做好了那是理所当然,做不好那就

老罗,认真做一个好产品远比磨嘴皮子重要

8月27日,又是一场世纪撕*大战. 此事要追溯到之前 Zealer 中国发布了一个关于 Smartisan T1 手机的测评视频.视频对于 Smartisan T1 的评价是质量并非属于过关级别.老罗表示不能忍,最后与王自如约战优酷. 我是从晚上七点钟开始看两人的对质的.后来我发现这纯属是老罗的绝对的 Smartisan 广告.首先就是磨嘴皮子不给对手机会,一会说「我们不要相互打断」,然后又多次打断王自如,王自如到我关视频之前自始至终没有完整说过几大段完整的话:然后在屏幕发灰的问题上揪着自如不放

做一个会沟通的产品经理

无论是什么样的人,都得有好的工投方式,特别是产品经理.产品经理在日常工作中总是可以说是作为一个沟通纽带,就我自己的工作经验来说,一个项目的前前后后往往包括这样几个阶段(本文来自e良师益友网): 1.项目提出与规划.需要与 Leader 以及相关产品同事一起决定产品的形态.明确核心功能和目标人群.划分项目周期和各部门之间的分工.期间伴随着项目的前期调研(功能需求性验证.必要的数据采集等)以及竞品分析等工作. 2.项目设计与开发.产品经理完成产品需求文档.制作产品原型.根据分工配置,交互设计师.视觉

创业的时候只能专心致志做好一件事。什么叫“一件事”?只能开发一个游戏,只能做一个产品

著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:王统伟链接:http://www.zhihu.com/question/19550531/answer/15183706来源:知乎 这是我在商界招商网看到天使投资人曾李青(原腾讯公司五位创始人之一)对早期创业公司的看法 ,觉得对你蛮有帮助的,你可以参考下!曾李青:早期创业公司九种死法第一,跨行业创业 比如原来做游戏的人要做电商,原来做互联网社区的要做游戏.现在的互联网环境下,这种跨行业创业失败概率都会比较高. 在演讲中,他

码农的产品思维培养第2节----一个需求的奋斗史(人人都是产品经理)

今天我们继续坚持每日一节的产品思维培养,我喜欢在纸上画,喜欢做笔记.不是为了自己后面回去看,而是为了当时更好理解.不知道大家是否认同这点. 今天看到苏杰的一句话,其实和我之前讲过的是一致的,看来英雄所见略同,还是给大家分享一下"和学习任何领域的知识一样,建议大家在了解了知识框架之后,坚持"需求驱动学习"". 第二章,讲述的是一个需求的奋斗史.其实就是描述如何从用户那里得到需求,得到需求后如何处理的一个过程.今天,我们这一节讲如何从用户那里拿到需求. 用户研究,或者说

初识Scrapy,在充满爬虫的世界里做一个好公民

欢迎来到你的Scrapy之旅.通过本文,我们旨在将你从一个只有很少经验甚至没有经验的Scrapy初学者,打造成拥有信心使用这个强大的框架从网络或者其他源爬取大数据集的Scrapy专家.本文将介绍Scrapy,并且告诉你一些可以用它实现的很棒的事情. 1.1 初识Scrapy Scrapy是一个健壮的网络框架,它可以从各种数据源中抓取数据.作为一个普通的网络用户,你会发现自己经常需要从网站上获取数据,使用类似Excel的电子表格程序进行浏览,以便离线访问数据或者执行计算.而作为一个开发者,你需要经

安晓辉:程序员在公司没事干时候,做什么好?(产品上想多一点,设计上想多一点,技术上做深一点做宽一点,思维框架上学多一点)

(一)项目相关 做下面这些事情,可以让你更了解项目和所用技术: 看看项目的需求文档.设计文档,不要局限于你负责那个模块的,看整个项目的. 看看你在项目中用到的技术,自己掌握得如何,能否进一步提高,比如了解原理.阅读源码,重构自己的代码. 看看其他人的代码,尝试理解他的设计和所实现的功能. 看看别人用到的技术点.技术栈,尝试去了解. (二)个人成长 思考下面的问题,可以让你找到更多事情来做: 我个人想在技术上做到什么程度? 这个技术,团队里哪个人用得最好,好在哪里?我该如何做到像他那样? 产品预期

码农的产品思维培养第4节----听用户饿但不要照着做《人人都是产品经理》

夜深了,本来应该睡觉,本来今天发的贴子也够多.但是,学习有一种惯性,一旦启动,很那停下来,一旦停下来,变得懒惰也很难再继续. 总结一下苏杰的2.3"听用户的但不要照着做"的只是内容. 1 明确我们存在的价值 1.1 用户需求VS 产品需求 用户需求:用户自以为的需求,并且经常表达为用户的解决方案. 产品需求:经过我们分析,找到的真正需求,并且表达为 产品的解决方案. 需求分析:从用户提出的用户需求出发,挖掘出用户内心真正的渴望,再转化为产品需求的过程. 需求分析和技术分析最大的不同点.