scrapy 框架总结

scrapy的基本用法

  1. 通过命令创建项目
    scrapy startproject 项目名称
  2. 用pycharm打开项目
  3. 通过命令创建爬虫
    scrapy genspider 爬虫名称 域名
  4. 配置settings
    robots_obey=False
    Download_delay=0.5
    Cookie_enable=False
  5. 自定义UserAgentMiddleWare
    可以直接粘现成的
  6. 开始解析数据
  1. 先规划一下需要几个函数
  2. 函数1跳转到函数2使用 yield scrapy.Request(url,callback,meta,dont_filter)
  1. 将数据封装到items,记得yield item
  2. 自定义pipelines将数据存储到数据库/文件中
    框架总结:
    scrapy执行命令:scrapy crawl (爬虫文件名称)

创建项目 scrapy startproject + 项目名称
创建爬虫文件 进入到spiders 文件夹下 创建爬虫文件 scrapy genspider + 爬虫文件名称 + 网站的域
创建好之后打开 pycharm 选择虚拟环境
scrapt 项目的架构(框架)
chinaz 项目文件夹
spiders 存放所有的爬虫文件
zzw.py 爬虫文件(解析response 响应,提取目标数据和url)
items.py 编写要爬取的字段
middiewares.py 中间件(爬虫中间件,下载中间件)
piplines.py 数据管道(做数据持久化)
settings.py 设置文件(设置请求头,下载延迟)
scrapy.cfg 配置文件(部署项目的时候会用到)
yield 的作用就是把一个函数变成一个 generator(生成器),带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator,带有yeild的函数遇到yeild的时候就返回一个迭代值,下次迭代时, 代码从 yield 的下一条语句继续执行,而函数的本地变量看起来和上次中断执行前是完全一样的,于是函数继续执行, 直到再次遇到 yield

     #获取响应的状态码
    status = response.status
    #获取响应的html文本
    html_text = response.text
    # print(status,len(html_text))
    # with open('page.html','w') as file:
    #     file.write(html_text)
    #获取到响应的二进制数据
    # (当response.text出现乱码的时候,可以拿到二进制数据,进行解码)
    b_html = response.body
    # print(b_html)
    #获取响应头
    response_headers = response.headers
    # print('响应头:',response_headers)
    #获取请求头
    request_headers = response.request.headers
    # print('请求头:',request_headers)
    # step1:获取的标题和分类的url地址

    #response.xpath可以直接根据xptah语法提取目标数据mZ#category_list = response.xpath('//dl[@class="MaWebClist"]/dd')+response.xpath('//dl[@class="MaWebClist02"]/dd')
    #获取到所有的dd标签,每一个都是Selector,并且存放在列表里面
    category_list = response.xpath('//div[@class="MainWebClass clearfix"]/dl/dd/a')
    # print(category_list)
    # print(len(category_list))

你可能感兴趣的:(scrapy 框架总结)