美文网首页
requests库入门

requests库入门

作者: KelvinX | 来源:发表于2017-03-02 23:23 被阅读0次

    1.本周学习内容思维导图

    Requests库.png

    2.目录

    • Requests库对象的属性
    • Requests库方法入门
    • HTTP协议简介
    • 爬取网页的通用代码框架
    • robot协议简介

    3.Requests库对象的属性

    了解Requests库对象的属性,先用Requets库的get()方法获取对象,例如爬取百度首页

    >>> import requests
    >>> r = requests.get("http://www.baidu.com") 
    >>> r.status_code #HTTP请求的返回状态,200表示连接成功,404表示连接失败
    200
    >>> r.text #HTTP响应内容的字符串形式,既url对应的页面内容
    '<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible ...
    >>> r.encoding #从HTTP中猜测的响应内容方式
    'ISO-8859-1'
    >>> r.apparent_encoding #从内容中分析出的相应内容编码方式(备选编码方式)
    'utf-8'
    >>> r.content #HTTP响应内容的二进制形式
    b'<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>\xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80\xe4\xb8\x8b\xef\xbc\x8c\xe4\xbd\xa0\xe5\xb0\xb1\xe7\x9f\xa5\xe9\x81\x93</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <d ...
    

    4.Requests库方法入门

    1. request.request(method,url,**kwargs)
      method:请求方法
      r = request.requests('GET',url,kwargs)
      r = request.requests('HEAD',url,
      kwargs)
      r = request.requests('POST',url,kwargs)
      r = request.requests('PUT',url,
      kwargs)
      r = request.requests('PATCH',url,kwargs)
      r = request.requests('delete',url,
      kwargs)
      r = request.requests('OPTION',url,**kwargs)
      **kwargs:控制访问的参数,均为可选参数
    >>> kv = {'key1':'value1','key2':'value2'}
    >>> r = requests.request('POST','http://python123.io/ws',data = kv)
    >>> body = '主体内容'
    >>> r = requests.request('POST','http://python123.io/ws',data = kv)
    >>> r = requests.request('POST','http://python123.io/ws',data = kv)
    

    将data放在url链接对应的位置,作为数据来存储

    • json:JSON格式的数据,作为Request的内容
    • headers:字典,HTTP定制头
    >>> hd = {'user-agent':'Chrome/10'}
    >>> r = requests.request('POST','http://python123.io/ws',headers=hd)
    

    在访问链接时,可以模拟成chrome 浏览器去访问链接

    • cookies: 字典或者CookieJar,Request中的cookie
    • auth:元组,支持HTTP认证功能
    • files:字典,传输文件
    • timeout: 设定超时时间,秒为单位
    • proxies: 字典类型,设定访问代理服务器,可以增加登陆认证
    • allow_redirects:True/False,默认为True,重定向开关
    • stream: True/False,默认为True,获取内容立即下载开关
    • verify:True/False,默认为True,认证SSL证书开关
    • cert:本地SSL证书路径
    1. requests.get(url,params=None,**kwargs)
      ur·:拟获取页面的url链接
      params:url中的额外参数,字典或字节流格式,可选
      **kwargs:剩下的12个控制访问的参数
    2. requests.head(url,**kwargs)
    3. requests.post(url,data=None,json=None,**kwargs)
    4. requests.put(url,data=None,**kwargs)
    5. requests.patch(url,data=None,**kwargs)
    6. requests.delete(url,**kwargs)

    5.HTTP协议入门

    方法 说明
    GET 请求获取URL位置的资源
    HEAD 请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
    POST 请求向URL位置的资源后附加新的数据
    PUT 请求向URL位置储存一个资源,覆盖原URL位置的资源
    PATCH 请求向局部更新URL位置的资源,即改变该处资源的部分欸容
    DELETE 请求删除URL位置储存的资源

    6.爬取网页的通用代码框架

    import requests
    
    def getHTMLText(url):
        try:
            r = requests.get(url,timeout=30)
            r.raise_for_status() #如果状态不是200,则引发异常
            r.encoding = r.apparent_encoding
            return r.text
        except:
            print("爬虫失败!")
            
    if __name__ == "__main__":
        url = "http://www.baidu.com"
        print(getHTMLText())
    

    7.robots协议

    Robots Exclusion Standard 网络爬虫排除标准

    作用 网站告知网络爬虫哪些页面可以抓取,哪些不行
    形式 在网站根目录下的robot.txt 文件

    比如:

    http://www.jd.com/robots.txt
    

    相关文章

      网友评论

          本文标题:requests库入门

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