zoukankan      html  css  js  c++  java
  • Python网络爬虫与信息提取[request库的应用](单元一)

    ---恢复内容开始---

    注:学习中国大学mooc 嵩天课程 的学习笔记

    request的七个主要方法

    request.request() 构造一个请求用以支撑其他基本方法

    request.get(url,params=None,**kwarg)  12个参数     获取html的主要方法,对应于http的GET

    request.head(url,**kwargs)   13个参数  获取网页头信息的方法,对应于http的head

    request.post(url,data=None,json=None,**kwarg)11个采纳数  向网页中提交post请求的方法,对应于http中的post

    requset.put(url,data,**kwarg)    向网页中提交put请求的方法,对应于http中的put

    request.patch(url,data,**kwarg)   向http网页中提交局部修改请求,对应于http中的patch

    request.delete(url,**kwarg)   向http网页中提交局部修改请求,对应于http中的delete

    1.request.get(url,parm,更多参数)

    r=requests.get(rul)

    先构造一个request对象

    返回一个response对象(包含爬虫返回的内容)

    response 对象的五个属性

    1 r.status_code 状态码 200表示连接成功 404表示连接失败 不是200都是失败的

    2 r.text    以字符串的形式返回url对应的网络内容 

    3 r.encoding 从http header 中猜测相应内容的编码方式// 从header 中的charset字段 中找编码方式 如果没有 认为是 ISO-8859-1(无法解析中文)

    4 r.apparent_encoding 从内容中分析出相应内容的编码方式(备选编码方式)(更加准确)

    5 r.content http 相应内容的二进制形式 

    6.r.headers 返回头部信息

    #可以赋值 r.encoding="utf-8" 然后用 r.text 来读取

    2 理解Request 库的异常

    request.ConnnectionError   DNS查询失败 拒绝链接

    request.HTTPError     HTTP错误异常

    request.URLRequired    URL缺失异常

    request.TooManyRedirects 超过最大重定向次数。产生重定向异常

    request.ConnectTimeout   连接服务器超市异常

    request.Timeout       请求RUL超市 产生超时异常

    r.raise_for_status()   [response 对象的方法] 如果r状态码不是200  引发 HTTPError 异常

    3.http 协议 

    http hypertest transfer Protocol

    url格式 : URL格式 

    http://host[:port][path]

    host 合法的internet主机域名或IP地址

    port 端口号,缺省端口为80

    path 请求资源的路径

    http://www.bit.edu.cn

    http://220.181.111.188/duty

    URL 是通过HTTP协议存取资源的Internet路径

     

    1 http 协议对资源的操作

    GET   请求URL位置的资源

    HEAD    请求获取URL位置资源的相应信息报告,即获得该资源的头部信息

    POST   请求向URL位置的资源后附加新的信息

    PUT   请求向URL位置存储一个资源,覆盖原URL位置的资源

    PATCH   请求更新局部的URL位置资源,即改变该处的资源部分内容

    DELETE  请求删除URL位置的资源

    注:与request 的方法一一对应

    2 一些简单操作

    1 post  方法

    payload={"key":"value1","key2":"value2"}

    r=request.post("http://baabala.com",data=payload)

    print(r.text)

    {

    }

    使用post 一个字典 自动编码为form 表单

    payload={"ACB"}

    r=request.post("http://baabala.com",data=payload)

    print(r.text)

    {

    }

    使用post 一个字典 自动编码为data

    使用post 一个字符串 自动编码为form 表单

    put 方法也一样,但是会自动覆盖原先的内容

    4 requests 详解

    requset.requst(method,url,**kwargs)

    method : 请求方式

    url :获取页面的链接

    **kwargs 其他的参数(13)

    method(7种)就是操作

    **kwargs

    1.params 字典或者字节序列,作为参数增加到url中

    例:kv={"key1":"value1","key2":value2"}

    r=requests.requset("GET","http://pythonoo123.io/ws",params=kv)

    print(r.url)

    http://python123.io/ws?key1=value1&key2=value2

    2.data 字典字节序列或者文件对象,作为request的内容

    3.josn JSON格式的数据作为request的内容

    4.header     字典 HTTP 定制头

    例: hd={"user-agent":"Chrome/10"}

    r=request.request("POST","http://pythonoo123.io/ws",headers=hd)

    5.cookies :字典或Cookiejar

    6.auth :元祖,支持HTTP认证功能

    7.file 字典类型,传输文件

    例:fs={"file":open(open(“data.xls”,"rb"))}

    r=requests.request("post","http://pythonoo123.io/ws",files=fs)

    8.timeout 超时时间,一秒为单位

    9.proxies:字典类型,设定代理服务器,可以增加登录认证

    例: pxs{"http":"http://user:pass@10.10.1.1234","https":"https://10.10.10.1:4321"}

    r=request.request("GET",""http://pythonoo123.io/ws",proxies=pxs)利用其设置代理

    10.allow_redirects: True/False,默认为True,重定向开关,是否允许对url重定向

    11.stream: True/False,默认为True 获取内容立即下载开关

    12.verify:True/False,默认为True,认证SSL 证书开关

    13.cert 保存本地 SSL 路径字段

    ---恢复内容结束---

  • 相关阅读:
    js简单验证码的生成和验证
    基本够用的php.ini配置文件(CentOS7)
    转发:CentOS下tar压缩排除某个文件夹或文件及解压
    阿里云服务器CentOS7 vsftp安装、设置及后台端口的设置
    转发:entos7修改文件夹权限和用户名用户组
    转发:查看centos中的用户和用户组
    阿里云服务器CentOS7怎么分区格式化/挂载硬盘
    php调试用的几个小方法
    Jquery实现日期转换为 Unix时间戳及时间戳转换日期
    Jquery计算时间戳之间的差值,可返回年,月,日,小时等
  • 原文地址:https://www.cnblogs.com/sfzyk/p/6512884.html
Copyright © 2011-2022 走看看