zoukankan      html  css  js  c++  java
  • Scrapy笔记

    scrapy命令

    • 创建scrapy项目
    scrapy startproject myStestSpider #(项目名称)
    
    • 创建爬虫文件
      进入spiders文件夹
    scrapy genspider myStestSpider "domain"
    
    • 运行爬虫
    scrapy crawl myStestSpider
    

    不打印Debug信息

    scrapy crawl spider1Project -L WARNING

    Request类

    爬取普通网站,不需要验证码,不需要登入的界面,我们一般用scrapy.Request类直接去爬取信息

    FormRequest

    • 模拟表单或Ajax提交post请求的时候用,带有 formdata 方法,专门用来设置表单字段数据,即填写账号、密码,实现登入,默认method也是POST。
    • FormRequest相当于是手动指定post
    • scrapy.FormRequest 同等于 scrapy.http.FormRequest

    Request的重要参数

    Request中的主要参数:

    # url是要爬取的网址
    # callback是回调函数
    # method是请求的方式post还是get
    # headers是浏览器伪装的头信息
    # formdata表单提交的数据(FormRequest类扩展的方法)
    # body是网页源代码信息
    # cookies是登入某网站后,网站在你电脑上保留的信息
    # meta要携带或者传递的信息 自定义,向response传递数据
    # encoding是编码方式
    # priority用来设置访问网站的优先级
    # dont_filter是否允许重复爬取网站
    # errback(callback) 在发生错误的时候执行的函数。
    

    Response的重要参数

    Response只是一个基类,根据响应内容的不同有如下子类:

    TextResponse
    HtmlResponse
    XmlResponse

    • HtmlResponse 对象的属性及方法
      • url
        HTTP 响应的url地址,str 类型。

      • status
        HTTP 响应的状态码,int 类型。

      • headers
        HTTP 响应的头部,dict 类型。可以调用get或getlist方法对其进行访问。

      • body
        HTTP 响应正文,bytes 类型。

      • text
        文本形式的HTTP响应正文,str 类型,它是由 response.body 使用 response.encoding 解码得到的。
        response.text = response.body.decode(response.encoding)

      • encoding
        HTTP 响应正文的编码,它的值可能是从HTTP响应头部或正文中解析出来的

      • request
        产生该HTTP 响应的Request对象。

      • meta
        即 response.request.meta, 在构造 Request对象时,可将要传递给响应处理函数的信息通过meta参数传入;响应处理函数处理响应时,通过response.meta 将信息取出。

      • selector
        Selector 对象用于在Response 中提取数据。

      • xpath(query)
        使用XPath选择器在Response中提取数据;它是 response.selector.xpath 方法的快捷方式。

      • css(query)
        使用 CSS选择器在Response中提取数据;它是 response.selector.css方法的快捷方式。

      • urljoin (url)
        用于构造绝对 url 。当传入的url参数是一个相对地址时,根据response.url 计算出相应的绝对 url。

  • 相关阅读:
    Kubernetes 两步验证
    实战优化丨如何借助 CODING 实现云开发中的云函数的自动化部署
    弹性配置为构建提速
    一分钟开始持续集成之旅系列之:C 语言 + Makefile
    一分钟开始持续集成之旅系列之:Java + GWT
    静态网站架构的演进和最佳实践
    DevOps
    真香!CODING DevOps “极速构建计划”,再也不用担心构建慢了!
    CODING 敏捷实战系列课第二讲:Scrum 敏捷项目管理核心要素之 3355
    一分钟开始持续集成之旅系列之: Vue + 腾讯云 COS 上传部署
  • 原文地址:https://www.cnblogs.com/zh672903/p/10987712.html
Copyright © 2011-2022 走看看