scrapy 的一个例子
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 的一个例子的更多相关文章
- 用Scrapy写一个爬虫
昨天用python谢了一个简单爬虫,抓取页面图片: 但实际用到的爬虫需要处理很多复杂的环境,也需要更加的智能,重复发明轮子的事情不能干, 再说python向来以爬虫作为其擅长的一个领域,想必有许多成熟 ...
- spring笔记--使用springAPI以及自定义类 实现AOP的一个例子
Spring的另一个重要思想是AOP,面向切面的编程,它提供了一种机制,可以在执行业务前后执行另外的代码,Servlet中的Filter就是一种AOP思想的体现,下面通过一个例子来感受一下. 假设我们 ...
- [转]使用Scrapy建立一个网站抓取器
英文原文:Build a Website Crawler based upon Scrapy 标签: Scrapy Python 209人收藏此文章, 我要收藏renwofei423 推荐于 11个月 ...
- ReCap 360 photo照片建模技术的又一个例子
这是我做的又一个利用Autodesk ReCap 360 照片建模技术做的一个例子.你可以下载模型自己把玩,或者下载原始照片自己试一试. 拍摄工具: 小米手机 照片数量:约120张 后期处理工具: p ...
- 从一个例子中体会React的基本面
[起初的准备工作] npm init npm install --save react react-dom npm install --save-dev html-webpack-plugin web ...
- 用thinkphp写的一个例子:抓取网站的内容并且保存到本地
我需要写这么一个例子,到电子课本网下载一本电子书. 电子课本网的电子书,是把书的每一页当成一个图片,然后一本书就是有很多张图片,我需要批量的进行下载图片操作. 下面是代码部分: public func ...
- Erlang 程序引发共享内存 bug 的一个例子
虽然 Erlang 的广告说得非常好,functional.share-nothing.消息传递,blah blah 的,好像用 Erlang 写并发程序就高枕无忧了,但是由于 Erlang 信奉高度 ...
- 对Jena的简单理解和一个例子
本文简单介绍Jena(Jena 2.4),使用Protégé 3.1(不是最新版本)创建一个简单的生物(Creature)本体,然后参照Jena文档中的一个例子对本体进行简单的处理,输出本体中的Cla ...
- 使用flume的一个例子
新项目中需要使用到hadoop和vertica,使用flume把数据加载到hadoop中,我做了一个例子, 即监控一个sharefolder,如果里面有文件,则会文件load到hadoop. 开启Fl ...
随机推荐
- Angular6
Structural Directives https://angular.io/guide/structural-directives#template-input-variable There a ...
- nGrinder3.4 性能测试框架安装
转载:https://blog.csdn.net/mbugatti/article/details/53782070 nGrinder3.4 (2016.05.24) 支持JDK1.8 github地 ...
- (数据挖掘-入门-3)基于用户的协同过滤之k近邻
主要内容: 1.k近邻 2.python实现 1.什么是k近邻(KNN) 在入门-1中,简单地实现了基于用户协同过滤的最近邻算法,所谓最近邻,就是找到距离最近或最相似的用户,将他的物品推荐出来. 而这 ...
- Discuz常见小问题-如何修改自己发布的帖子
在发布的帖子的下方就有编辑的按钮,可以直接点击进去编辑
- Asp.net 生成静态页面
http://www.cnblogs.com/tonycall/archive/2009/07/18/1526079.html Asp.net 生成静态页面(简单用法) 第一次发表,有什么错误,请大家 ...
- HTML解析模块
import html html.escape(s, quote=True) 对特殊字符进行转义 Convert the characters &, < and > in stri ...
- 使用fiddler来抓包
使用fiddler来抓包 Sniffer,wireshark,WinNetCap.WinSock Expert,SpyNet 都是当前流行的抓包工具 需要先做一些简单的准备工作: 一台带有无线网卡的P ...
- 使用 C# 开发智能手机软件:推箱子(十二)
这是"使用 C# 开发智能手机软件:推箱子"系列文章的第十二篇.在这篇文章中,介绍 Window/AboutDlg.cs 源程序文件. 这个源程序文件包括 AboutDlg 类,该 ...
- KnockoutJS + My97DatePicker b
如何将Knockoutjs和其他脚本库结合使用?这里给出一个Knockoutjs与my97datepicker配合使用的例子,例子中使用了ko的自定义绑定功能: ko.bindingHandlers. ...
- 在C#中判断某个类是否实现了某个接口
有时我们需要判断某个类是否实现了某个接口(Interface),比如在使用反射机制(Reflection)来查找特定类型的时候. 简单来说,可以使用Type.IsAssignableFrom方法: t ...