Scrapy入门

Scrary:一个开源友好的扩展性强框架,主要作用从网站上抓取所需要的数据。优点:快速,强大,扩展性强,无需接触核心代码即可使用,python编写可移植型强。

包的安装:

http://www.cnblogs.com/python-life/articles/4511314.html

一个简单地scrapy spider编写过程

  • 创建工程
    创建工程的命令scrapy startproject project_name
    在genspider的基础上改写想要的内容cd project_name
    创建spiderscrapy genspider dmoz_spider(spider_name) dmoz.org(目标网站)
  • 定义要摘取的内容
    在items.py中定义要爬取的内容
    title=scrapy.Field()
  • 编写spider
    修改文件夹中的spider下的dmoz_spider.py文件
  • 修改pipeline
    修改pipeline.py
  • 运行
    运行,命令行输入:scrapy crawl dmoz_spider(spider_name)
    列出一个工程中的爬虫:scrapy list

scrapy命令行工具

scrapy --help用于查看帮助信息
scrapy version (-v)用于显示scrapy版本信息,加上-v显示各组件的版本
startproject:scrapy startproject project_name创建一个工程和其相对完整的目录结构
genspiderscrapy genspider dmoz_spider(spider_name) dmoz.org(目标网站)在一个工程中(cd之后)运行产生一个spider,可以产生多个spider,要求spider名称不同
scrapy list:用来查看本工程中的spider名称
scrapy view +url:查看页面源码在浏览器中显示的样子
scrapy parse:在工程中以固定的parse函数(工程中的函数)解析某个页面,可以进一步判断parse函数是否有误
scrapy shell:用于调试数据,检测xpath,查看页面源码等,执行命令进入交互式页面,可以产生一些供使用的全局变量
scrapy runspider spider_name.py:运行一个自包含的爬虫
scrapy bench:基准测试,用来测试scrapy安装是否成功

scrapy的重要组件

spider:定义如何爬取一个网站,包括怎样跟踪连接,怎样提取数据,基本流程:

  1. 产生初始requests
  2. parse函数解析requests对应的response
  3. 使用selector抽取需要的信息
  4. 存储item

selector:解析网页的库还有beautifulsoup,lxml。但是scrapy中默认的是selector。常用的抽取方法:

  • xpath response.xpath('//title/text()')
  • css response.css(title::text)
  • re
  • extract

item :定义要抓取的属性

import scrapy
class Product(scrapy.Item):
          name=scrapy.Field()
          price=scrapy.Field()

pipeline:清洗html数据,检验数据,存储数据

from scrapy.exceptions import DropItem
class PricePipeline(object):
          vat_factor=1.15
          def process_item(self,item,spider):
                  if item['price']:
                          ...
                  else:
                          ...

要想使得pipeline生效,必须要做的事在setting.py中加入以下内容:

ITEM_PIPELINES={
             'myproject.pipeline.PricePipeline':300,
             'myproject.pipeline.pricePipeline':800,
             #'路径':优先级,先执行优先级低的再执行优先级搞得
}

Feed Export:存储抓取到的数据
存储格式包括:

  • JSON
  • JSON lines
  • CSV
  • XML
    存储位置包括:本地,S3,FTP,标准输出
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信...
    JasonDing阅读 122,571评论 15 126
  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 12,806评论 4 46
  • Scrapy入门环境搭建 概述 本文介绍用python3来搭建scrapy环境,实践一下最简单的scrapy用法。...
    Htea阅读 1,359评论 0 1
  • Scrapy 入门教程### 安装Scrapy lxml很容易出问题 。 定义 Item em是保存爬取到的数据...
    ASulee阅读 1,381评论 1 0
  • 大家好,今天向大家介绍—鸡蛋当归红糖水 每星期喝1~2次,对面黄、月经稀少有一定的辅助效果! 提示:这道糖水所需要...
    12月32号阅读 378评论 0 1