ScrapyScrapy大数据 爬虫Python AI Sql

Scrapy入门

2017-12-15  本文已影响17人  analanxingde

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

包的安装:

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

一个简单地scrapy spider编写过程

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。常用的抽取方法:

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:存储抓取到的数据
存储格式包括:

上一篇下一篇

猜你喜欢

热点阅读