美文网首页
scrapy 框架总结

scrapy 框架总结

作者: 唐朝集团 | 来源:发表于2018-12-03 20:18 被阅读0次

    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 框架总结

          本文链接:https://www.haomeiwen.com/subject/ltgycqtx.html