• 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。

  • 相关阅读:
    yum命令报错 yum update File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: --CentOS7.5
    CentOS7.5下安装Python3.7 --python3
    CentOS7.5安装Python3.7报错:configure: error: no acceptable C compiler found in $PATH --Python3
    ubuntu18.04.2LTS下安装和配置MySql数据库 --ubuntu
    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! --主机密钥验证失败
    iphone使用linux命令apt-get也没有问题
    百度网盘下载器 PanDownload v2.0
    iPhone越狱cydia源大全
    php判断网站收录情况
    linux下C语言三种get输入方式
  • 原文地址:https://www.cnblogs.com/zh672903/p/10987712.html
Copyright © 2020-2023  润新知