zoukankan      html  css  js  c++  java
  • python爬虫学习数据分析(连载中)

    1.首先 安装requests库

    Win平台: “以管理员身份运行”cmd,执行 pip install requests
    如果是IDE,以pycharm为例,选择IDE环境下载,或者是Anaconda库下载

    import requests
    r=requests.get("http://www.baidu.com")
    print(r.status_code)
    

    r.status_code HTTP请求的返回状态,200表示连接成功,404或其他表示失败
    r.text HTTP响应内容的字符串形式,即,url对应的页面内容
    r.encoding 从HTTP header中猜测的响应内容编码方式
    r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
    r.content HTTP响应内容的二进制形式
    输出200表示服务器已应答,输出其他则需要检查库是否安装成功(地址是否正确)。

    requests库的重要方法

    requests.request() 构造一个请求,支撑以下各方法的基础方法
    requests.get() 获取HTML网页的主要方法,对应于HTTP的GET
    requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD
    requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST
    requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT
    requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
    requests.delete() 向HTML页面提交删除请求,对应于HTTP的DELETE

    get方法介绍

    requests.get()
    r = requests.get(url)
    Request
    构造一个向服务器请求
    资源的Request对象
    Response
    返回一个包含服务器
    资源的Response对象
    requests.get(url, params=None, **kwargs)参数类型
    Response对象包含服务器返回的所有信息,也包含请求的Request信息

    爬取异常处理(网络连接有风险,异常处理很重要)

    requests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
    requests.HTTPError HTTP错误异常
    requests.URLRequired URL缺失异常
    requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
    requests.ConnectTimeout 连接远程服务器超时异常
    requests.Timeout 请求URL超时,产生超时异常

    r.raise_for_status() 如果不是200,产生异常 requests.HTTPError
    r.raise_for_status()在方法内部判断r.status_code是否等于200,不需要
    增加额外的if语句,该语句便于利用try‐except进行异常处理

    mport requests
    def getHTMLText(url):
        try:
            r=requests.get(url,timeout=30)
            r.raise_for_status()
            r.encoding=r.apparent_encoding
            return r.text
        except:
            return "erro"
    if_name_=="_main_":
        url="http://www.baidu.com"
        print(getHTMLText(url))
    

    http协议简介

    HTTP
    HTTP,Hypertext Transfer Protocol,超文本传输协议
    HTTP是一个基于“请求与响应”模式的、无状态的应用层协议
    HTTP协议采用URL作为定位网络资源的标识,URL格式如下:

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

    host: 合法的Internet主机域名或IP地址
    port: 端口号,缺省端口为80
    path: 请求资源的路径
    HTTP,Hypertext Transfer Protocol,超文本传输协议
    HTTP URL实例:

    http://www.bit.edu.cn
    http://220.181.111.188/duty
    

    HTTP URL的理解:
    URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源

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

    假设URL位置有一组数据UserInfo,包括UserID、UserName等20个字段
    需求:用户修改了UserName,其他不变
    • 采用PATCH,仅向URL提交UserName的局部更新请求
    • 采用PUT,必须将所有20个字段一并提交到URL,未提交字段被删除
    PATCH的最主要好处:节省网络带宽

    head()方法

     import requests
    r=requests.head('http://httpbin.org/get')
    r.headers
    

    post()方法

    payload = {'key1': 'value1', 'key2': 'value2'}
    >>> r = requests.post('http://httpbin.org/post', data = payload)
    >>> print(r.text)
    { ...
    "form": {
    "key2": "value2",
    "key1": "value1"
    },
    }
    
     r = requests.post('http://httpbin.org/post', data = 'ABC')
    >>> print(r.text)
    { ...
    "data": "ABC"
    "form": {},
    }
    

    put()方法

    payload = {'key1': 'value1', 'key2': 'value2'}
    >>> r = requests.put('http://httpbin.org/put', data = payload)
    >>> print(r.text)
    { ...
    "form": {
    "key2": "value2",
    "key1": "value1"
    },
    }
    
  • 相关阅读:
    DecimalPercentageConverter
    Asp.Net 性能 ViewState 压缩的2种方法
    Listbox template
    Datagrid template for listbox and textbox
    ToPercentConverter : IValueConverter
    繁體中文
    Silverlight ComboBox 设置选中项
    鲁迅:纪念刘和珍君
    ASP.NET系统整合DiscuzNT3.6之注意事项
    [转]js动态创建json类型
  • 原文地址:https://www.cnblogs.com/AmosAlbert/p/12832338.html
Copyright © 2011-2022 走看看