1、目标:

  scrapy 是一个爬虫构架,现用一个简单的例子来讲解,scrapy 的使用步骤

2、创建一个scrapy的项目:

  创建一个叫firstSpider的项目,命令如下:

scrapy startproject firstSpider 
[jianglexing@cstudio ~]$ scrapy startproject firstSpider
New Scrapy project 'firstSpider', using template directory '/usr/local/python-3.6.2/lib/python3.6/site-packages/scrapy/templates/project', created in:
/home/jianglexing/firstSpider You can start your first spider with:
cd firstSpider
scrapy genspider example example.com

  

3、创建一个项目时scrapy 命令干了一些什么:

  创建一个项目时scrapy 会创建一个目录,并向目录中增加若干文件

[jianglexing@cstudio ~]$ tree firstSpider/
firstSpider/
├── firstSpider
│ ├── __init__.py
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── __pycache__
│ ├── settings.py
│ └── spiders
│ ├── __init__.py
│ └── __pycache__
└── scrapy.cfg directories, files

4、进入项目所在的目录并创建爬虫:

[jianglexing@cstudio ~]$ cd firstSpider/
[jianglexing@cstudio firstSpider]$ scrapy genspider financeSpider www.financedatas.com
Created spider 'financeSpider' using template 'basic' in module:
firstSpider.spiders.financeSpider

5、一只爬虫在scrapy 项目中对应一个文件:

[jianglexing@cstudio firstSpider]$ tree ./
./
├── firstSpider
│ ├── __init__.py
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── __pycache__
│ │ ├── __init__.cpython-.pyc
│ │ └── settings.cpython-.pyc
│ ├── settings.py
│ └── spiders
│ ├── financeSpider.py # 这个就是刚才创建的爬虫文件
│ ├── __init__.py
│ └── __pycache__
│ └── __init__.cpython-.pyc
└── scrapy.cfg

6、编写爬虫的处理逻辑:

  以爬取 http://www.financedatas.com 网站首页的title为例

# -*- coding: utf-8 -*-
import scrapy class FinancespiderSpider(scrapy.Spider):
name = 'financeSpider'
allowed_domains = ['www.financedatas.com']
start_urls = ['http://www.financedatas.com/'] def parse(self, response):
"""在parse方法中编写处理逻辑"""
print('*'*64)
title=response.xpath('//title/text()').extract() #xpath 语法抽取数据
print(title)
print('*'*64)

7、运行爬虫,查看效果:

[jianglexing@cstudio spiders]$ scrapy crawl financeSpider
-- :: [scrapy.utils.log] INFO: Scrapy 1.4. started (bot: firstSpider)
-- :: [scrapy.utils.log] INFO: Overridden settings: {'BOT_NAME': 'firstSpider', 'NEWSPIDER_MODULE': 'firstSpider.spiders', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['firstSpider.spiders']}
.... ....
-- :: [scrapy.core.engine] DEBUG: Crawled () <GET http://www.financedatas.com/robots.txt> (referer: None)
-- :: [scrapy.core.engine] DEBUG: Crawled () <GET http://www.financedatas.com/> (referer: None)
****************************************************************
['欢迎来到 www.financedatas.com'
] # 这里就抽取到的数据
****************************************************************-- :: [scrapy.core.engine] INFO: Spider closed (finished)

----

scrapy 的一个例子的更多相关文章

  1. 用Scrapy写一个爬虫

    昨天用python谢了一个简单爬虫,抓取页面图片: 但实际用到的爬虫需要处理很多复杂的环境,也需要更加的智能,重复发明轮子的事情不能干, 再说python向来以爬虫作为其擅长的一个领域,想必有许多成熟 ...

  2. spring笔记--使用springAPI以及自定义类 实现AOP的一个例子

    Spring的另一个重要思想是AOP,面向切面的编程,它提供了一种机制,可以在执行业务前后执行另外的代码,Servlet中的Filter就是一种AOP思想的体现,下面通过一个例子来感受一下. 假设我们 ...

  3. [转]使用Scrapy建立一个网站抓取器

    英文原文:Build a Website Crawler based upon Scrapy 标签: Scrapy Python 209人收藏此文章, 我要收藏renwofei423 推荐于 11个月 ...

  4. ReCap 360 photo照片建模技术的又一个例子

    这是我做的又一个利用Autodesk ReCap 360 照片建模技术做的一个例子.你可以下载模型自己把玩,或者下载原始照片自己试一试. 拍摄工具: 小米手机 照片数量:约120张 后期处理工具: p ...

  5. 从一个例子中体会React的基本面

    [起初的准备工作] npm init npm install --save react react-dom npm install --save-dev html-webpack-plugin web ...

  6. 用thinkphp写的一个例子:抓取网站的内容并且保存到本地

    我需要写这么一个例子,到电子课本网下载一本电子书. 电子课本网的电子书,是把书的每一页当成一个图片,然后一本书就是有很多张图片,我需要批量的进行下载图片操作. 下面是代码部分: public func ...

  7. Erlang 程序引发共享内存 bug 的一个例子

    虽然 Erlang 的广告说得非常好,functional.share-nothing.消息传递,blah blah 的,好像用 Erlang 写并发程序就高枕无忧了,但是由于 Erlang 信奉高度 ...

  8. 对Jena的简单理解和一个例子

    本文简单介绍Jena(Jena 2.4),使用Protégé 3.1(不是最新版本)创建一个简单的生物(Creature)本体,然后参照Jena文档中的一个例子对本体进行简单的处理,输出本体中的Cla ...

  9. 使用flume的一个例子

    新项目中需要使用到hadoop和vertica,使用flume把数据加载到hadoop中,我做了一个例子, 即监控一个sharefolder,如果里面有文件,则会文件load到hadoop. 开启Fl ...

随机推荐

  1. Transformer中引用iqd作为数据源的时提示TR1008无法连接问题

    刚接触tr的同行们可能都会遇到这么一个问题,当然我也遇到了. 今天把问题的解决办法详细的说明一下 从问题的表面来看是从cognos.ini文件缺少了什么配置东西,但是cognos10的安装中没有cog ...

  2. 1-2Html与CSS的关系

    Html和CSS的关系 基于微信的后台开发须要掌握的基础知识包括有:HTML.CSS.JavaScript语言. 以下我们就来了解下这三门技术都是用来实现什么的: 1. HTML是网页内容的载体.内容 ...

  3. [Javascript] Understand Curry

    The act of currying can be described as taking a multivariate function and turning it into a series ...

  4. 让你看不懂的swift语法

    一.Swift杂谈 Swift语法出来时间不长,网络上的各种教程已经铺天盖地,可是基本上全部的教程都是来自官方翻译. 从Swift出来到如今.每天都在学习Swift.以下给出个人感受 Swift中的非 ...

  5. Jacoco 代码覆盖率,监控WEB项目

    转载:https://blog.csdn.net/u010469432/article/details/73283824 jacococ代码覆盖率,以客户端形式直接监控远程代码 使用理解 jacoco ...

  6. ArcEngine真正释放锁文件,彻底移除图层

    ArcMap在加载图层时会自动生成一个lock格式的加锁文件,右击移除图层后,加锁文件也会自动删除.但AE开发中却不能正常删除,移除图层后加锁文件依然存在,这就导致在其他地方无法对该图层进行操作,只有 ...

  7. linux查询文件中某几行

    查询文件中某几行: sudo cat /etc/tinyproxy.conf | head -n | tail -n + [一]从第3000行开始,显示1000行.即显示3000~3999行 cat ...

  8. CentOS(学习笔记一)

    菜鸟记录 一.配置网络.防火墙等 setup命令 二.查看网络 ifconfig 重启网络 /ect/init.d/network restart 或者ifup ethx(,,)等 查看网络配置文件 ...

  9. “最大子序列和”算法 java

    maxSubSum各自是最大子序列和的4中java算法实现. 第一种算法执行时间为O(N^3),另外一种算法执行时间为O(N^2),第三种算法执行时间为O(nlogn),第四种算法执行时间为线性N p ...

  10. webservice系统学习笔记7-使用handler实现过滤器/拦截器效果

    handler可以作用于客户端,也可以作用了服务端 handler分为:1.LogicalHandler:只能获取到soap消息的body. 2.SOAPHandler:可以获取SOAPMessage ...