【请初学者作为参考,不建议高手看这个浪费时间】

工作中经常会有这种需求,需要抓取互联网上的数据。笔者就经常遇到这种需求,一般情况下会临时写个抓取程序,但是每次遇到这种需求的时候,都几乎要重头写,特别是面临需要抓取大数量网页,并且被抓取网站有放抓取机制的时候,处理起来就会很麻烦。

无意中接触到了一个开源的抓取框架scrapy,按照introduction做了第一个dirbot爬虫,觉得很方便,就小小研究了一下,并在工作中用到过几次。

scrapy的文档是英文的,网上相关的说明很少,使用的过程中也遇到过很多问题,大部分都是在 stack overflow 上找到的解答,看来这个工具国外的同行们用的会更多些。鉴于国内关于scrapy的文章甚少,笔者希望能用自己的一些浅显的经验希望帮助大家更快对scrapy入门,作为笔者的第一篇分享文章,很难一气呵成完成,本文将分为几个部分,按照我自己的学习曲线作为组织,如果有错误,希望大家指正。

首先简要终结一下我认为scrapy最便利的几个地方:

1. 代码分工明确,一个抓取任务只需要在几个位置固定的地方增加代码,很容易就能写出基本的抓取功能。

2. 框架隐藏了很多抓取细节,如任务调度,重试机制,但并不是说框架不够灵活,例如框架支持以添加中间件的方式更改隐藏的细节,满足特殊需要,如使用代理ip池进行抓取,防止服务器封掉ip。

好啦,下面正式开始,从安装开始

笔者的运行环境是:linux python2.5

包管理使用的是:apt-get

安装流程:

1. 首先去官方网站下载源码

https://github.com/scrapy/scrapy/tarball/0.14

2. 安装scrapy以来的python库

sudo apt-get install python-twisted python-libxml2 python-pyopenssl python-simplejson

3. 安装

tar zxf Scrapy-X.X.X.tar.gz
cd Scrapy-X.X.X
sudo python setup.py install
4. 执行
scrapy  
如果出现
 
恭喜你,安装成功。
【未完待续~~~~~】
喜欢一起简单,实用的东西,拒绝复杂花哨,我不是GEEK.

【scrapy】使用方法概要(一)(转)的更多相关文章

  1. Python3 Scrapy 安装方法

    Python3 Scrapy 安装方法 (一脸辛酸泪) 写在前面 最近在学习爬虫,在熟悉了Python语言和BeautifulSoup4后打算下个爬虫框架试试. 没想到啊,这坑太深了... 看了看相关 ...

  2. 【scrapy】使用方法概要(三)(转)

    请初学者作为参考,不建议高手看这个浪费时间] 前两篇大概讲述了scrapy的安装及工作流程.这篇文章主要以一个实例来介绍scrapy的开发流程,本想以教程自带的dirbot作为例子,但感觉大家应该最先 ...

  3. 【scrapy】使用方法概要(二)(转)

    [请初学者作为参考,不建议高手看这个浪费时间] 上一篇文章里介绍了scrapy的主要优点及linux下的安装方式,此篇文章将简要介绍scrapy的爬取过程,本文大部分内容源于scrapy文档,翻译并加 ...

  4. 【scrapy】使用方法概要(四)(转)

    [请初学者作为参考,不建议高手看这个浪费时间] 上一篇文章,我们抓取到了一大批代理ip,本篇文章介绍如何实现downloaderMiddleware,达到随即使用代理ip对目标网站进行抓取的. 抓取的 ...

  5. 简单总结scrapy使用方法

    应课程需要写了几天爬虫,一开始使用requests+bs4的技术路线,但是速度不是很理想而且不能暂停,通过查阅资料,发现scrapy正是我需要的 做一下简短的记录: 首先应该毫不犹豫的scrapy s ...

  6. Scrapy安装方法

    Scrapy安装在Python2.7环境下 1.配置环境变量: 2.安装基础软件 4个(64位系统) 安装twisted: C:\Users\Administrator>pip  install ...

  7. virtualenv简介以及一个比较折腾的scrapy安装方法

    本文来自网易云社区 作者:沈高峰 virtualenv + pip 安装python软件包是一种非常好的选择,在大部分情况下安装python软件包是不需要求助于sa的. 使用自己的一个工作副本也是写p ...

  8. python-1.Centos7安装Python3.6和Scrapy的方法

    由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到 [root@iZm5efjrz9szlsq1a0ai3gZ ~]# python ...

  9. python scrapy解码方法和时间格式转换

    import scrapy from datetime import datetime class BianSpider(scrapy.Spider): name = 'bian' # allowed ...

随机推荐

  1. URL的井号

    2010年9月,twitter改版. 一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为 http://twitter.com/username 改版后,就变 ...

  2. OpenCV处理直方图

    直方图可以用来描述各种不同的事物,如物体的色彩分布.物体边缘梯度模板,以及表示目标位置的当前假设. 简单的说,直方图就是对数据进行统计,将统计值组织到一系列事先定义好的bin中.bin中的数值是从数据 ...

  3. 【LOJ】#2052. 「HNOI2016」矿区

    题解 之前尝试HNOI2016的时候弃坑的一道,然后给补回来 (为啥我一些计算几何就写得好长,不过我写啥都长orz) 我们尝试给这个平面图分域,好把这个平面图转成对偶图 怎么分呢,我今天也是第一次会 ...

  4. 【BZOJ】1061: [Noi2008]志愿者招募

    题解 可能是世界上最裸的一个单纯形 (话说全幺模矩阵是啥我到现在都不知道) 假装我们已经看过了算导,或者xxx的论文,知道了单纯形是怎么实现的 扔一个blog走掉..https://www.cnblo ...

  5. 【AtCoder】ARC094(C-F)题解

    C - Same Integers 题解 要么三个都达到最大的数,要么三个都到达最大的数+1,判断是前一种情况的方法是不断垫高前两大的,看之后最小的那个和最大的那个差值是不是2的倍数 否则就是第二种情 ...

  6. Codeforces Round #248 (Div. 1) D - Nanami's Power Plant 最小割

    D - Nanami's Power Plant 思路:类似与bzoj切糕那道题的模型.. #include<bits/stdc++.h> #define LL long long #de ...

  7. HBase结合MapReduce批量导入(HDFS中的数据导入到HBase)

    HBase结合MapReduce批量导入 package hbase; import java.text.SimpleDateFormat; import java.util.Date; import ...

  8. 7-1 FireTruck 消防车 uva208

    题意: 输入一个n <=20 个结点的无向图以及某个结点k   按照字典序从小到大顺序输出从结点1到结点k的所有路径  要求结点不能重复经过 标准回溯法 要实现从小到大字典序 现在数组中排序好即 ...

  9. ThinPHP3.2中 addAll()批量插入数据

    thinkphp中model类的addAll()方法可以将数据同时添加到数据库中. 1 2 3 4 5 6 // 批量添加数据 (only MySQL) $user = M('user'); //ar ...

  10. windows下mysql配置(第一次)

    忙活了大半天,总算配置好了,本文献给windows下没试用过Mysql的小白,勿喷 http://blog.csdn.net/z1074907546/article/details/51482718 ...