scrapy1

scrapy项目默认结构

scrapy.cfg
myproject
    __init.py
    items.py
    middlewares.py
    pipelines.py
    settings.py
    spiders
        __init.py
        spider1.py
        spider2.py                

一、scrapy 命令行
- scrapy.cfg
该文件可以设置项目的python模块名称
  默认
  [settings]
  default = myproject.settings
  多个项目共享根目录 通过使用SCRAPY_PROJECT指定使用的项目
  1.项目的创建
    1)scrapy startproject (project) [project_dir] 可在project_dir目录下创建项目
    2)cd project_dir
    3)scrapy crawl genspider spidername domain 创建一个默认的spider
          scrapy genspider -t crawl spidername domain 创建一个CrawlSpider
  2.全局命令
    ·startproject 创建项目
    ·genspider 调用爬虫类型
    ·settings 设置
    ·runspider 运行spider.py文件
    ·shell scrapy shell url 用于调试解析
    ·fetch 使用下载器下载给定的url,并将内容标准输出
    ·view 查看网页源代码
    ·version 查看版本
  3.项目命令
    ·crawl 开始爬取
    ·check 检查爬虫其内部函数
    ·list 查看所有爬虫名称,只有爬虫文件目录下存在__init__.py,此爬虫名才会显示
    ·edit 快捷编辑爬虫
    ·parse 解析
    ·bench 基准测试(本地性能)
  4.自定义项目命令
  可在settings中添加COMMANDS_MODULE="myproject.commands"来添加自定义项目命令
二、SPIDER
  1.运行流程
    生成初始请求url,指定回调
  1)一个请求通过调用start_request()Request发送请求,默认回调为parse方法,
  2)在回调函数中解析下载的内容,并打包成item对象返回,或者返回Request对象继续爬取请求
  2.scrapy.spider
  默认爬虫类,所有的爬虫都必须继承这个类
  只提供start_request()来处理start_urls
    1)name 爬虫名
    2)allowed_domains 爬虫网页的域名,若启用offsetMiddleware,则不请求不属于该域名下的url
    3)start_urls 指定初始请求url
    4)custon_settings 设置
    5)crawler from_crawler()在初始化类后,设置此属性,并且绑定到spider实例中
    6)settings crawler.settings 获取爬虫的设置
    7)logger 日志
    8)from_crawler(crawler, *args, **kwargs) 可用来设置属性
    9)start_request() 初始请求
    10)parse 回调函数
    11)closed 关闭爬虫时调用
  3.scrapy.spiders.CrawlSpider
    爬取具有一定规则的网站,根据rules进行追踪链接
    1)rules url规则
    2)parse_start_url(response) 处理初始响应
    rule:
    scrapy.spiders.Rule
    1)link_extractor 链接提取器对象,每个链接都会用于生成一个Request对象
    2)callback 回调函数
    3)cb_kwargs 回调函数参数
    4)follow 指定是否从此页面继续跟进链接规则
    5)process_links
三、解析工具
  scrapy 自带解析选择器selector xpath选择器,css选择器
  scrapy.selector.Selector类中
  参数:
  response HtmlResponse或XmlResponse对象
  text 在response不可使用的时候,使用的unicode字符串和utf-8编码文本
  type 选择器类型,"html" "xml" None 为None时会自动选择最佳类型
  方法:
    xpath() xpath选择器
    css() css选择器
    get() 返回第一个元素
    getall() 返回所有元素
    attrib 返回基础元素属性字典
    re() 正则
    re_first() 正则匹配并返回第一个字符串
四、items、item_loaders
  items 定义输出数据格式
  item_loaders 对items进行填充
  使用方式:
  ItemLoader(item=items对象, response=预处理response)
  添加数据方法 add_xpath() xpath选择器
  add_css() css选择器
  add_value() 值添加
  输入和输出处理器(Input and Output processors)
  processors类
  Join 以特定字符连接两个或多个字符串
  MapCompose 一个或多个数据进行一个或多个函数处理,返回None,则抛弃
  Compose 一个数据进行一个或多个函数处理,返回None,则抛弃
  SelectJmes JSON中取值

  input_processor在收集到值后调用
  output_processor在数据yeild之后调用


五、item pipeline
  process_item 处理items
  open_spider 打开爬虫时调用
  close_spider 关闭爬虫时调用
  from_crawler 创建新实例




posted @ 2019-09-25 15:13  爱学习的红领巾  阅读(153)  评论(0编辑  收藏  举报