爬虫-相关库知识整理(更新)

requests库主要方法

import requests

requests.request(method, url, **kwargs)    """构造一个请求,支撑下面各种基础方法"""
# **kwarg包括params, data, json, headers, cookies, auth, files, timeout, proxies(设代理服务器),
# allow_redirexts, stream, verify 12个访问控制参数
requests.get(url, params=None, **kwargs) """获取html网页的主要方法,对应HTTP的GET""" requests.head(url, **kwargs) """获取html网页头信息的方法,对应HTTP的HEAD""" requests.post(url, data=None, json=None, **kwargs) """向html页面提交POST请求""" requests.put(url, data=None, **kwargs) """向html页面提交PUT请求""" requests.patch(url, data=None, **kwargs) """向html页面提交局部修改请求""" requests.delete(url, **kwargs) """向html页面提交删除请求"""

1.requests.get(url, params=None, **kwargs)

    url:你获取页面的url链接;

    params:url中额外参数,字典或字节流格式,可选;

    **kwargs:12个控制访问的参数;

  r = requests.get(url)返回一个包含服务器资源的Response对象r,r包含了爬虫返回的全部内容。其中r有5中常用的属性

r.status_code                """返回HTTP请求的状态码, 200表示成功,404表示失败"""

r.text                            """HTTP响应内容的字符串形式,url对应页面内容"""

r.encoding                     """从HTTP header中猜测的相应内容编码方式"""

r.apparent_encoding       """从内容中分析出的响应内容编码方式"""

r.content                        """HTTP响应内容的二进制形式"""

r.raise_for_status      """判断状态码是否正确,如果不是200就raise HTTPException"""

  

2.requests库的异常类型

requests.ConnectionError        """网络连接异常,DNS查询失败,拒绝连接等"""

requests.HTTPError                 """HTTP连接错误"""

requests.URLRequired             """URL缺失异常"""

requests.TooManyRedirects      """超过最大重定向次数,产生重定向异常"""

requests.ConnectTimeout        """连接远程服务器时超时"""

requests.Timeout                    """请求URL超时"""

  通过以上两点一般的爬取通用框架就可以大致勾画出来

 1 import requests
 2 
 3 def getHTMLText(url):
 4     try:
 5         r = requests.get(url, timeout=30)
 6         r.raise_for_status()    # 如果状态码错误,则抛出异常
 7         r.encoding = r.apparent_encoding
 8         return r.text
 9     except:
10         return "产生异常"
11 
12 if __name__ == "__main__":
13     url = "https://i.cnblogs.com/EditPosts.aspx?opt=1"
14     print(getHTMLText(url))

3.HTTP协议

超文本传输协议(HTTP)是一种基于”请求与响应“模式的、无状态的应用层协议。HTTP协议一般采用URL作为网络定位的标识。(http://host[:port][path])

而URL就是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源。

HTTP协议对资源的操作方法(method)主要有:GET, HEAD, POST, PUT, PATCH, DELETE对应requests库的几个方法,功能也一致。

GET:请求获得URL位置的资源;

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

POST:请求向URL位置的资源后附加新的数据

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

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

DELETE:请求删除URL位置存储的资源

猜你喜欢

转载自www.cnblogs.com/KrianJ/p/10586084.html