python 爬虫之requests笔记

  1. 准备工作
    安装好pycharm,requests库
  2. requests 爬虫程序(模板)
import requests
def getHTMTText(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status() #如果状态不是200,引发HTTPError异常
        r.encoding=r.raise_for_status()
        return r.text
    except:
        return "产生异常"
if __name__=="__main__":
    url="http://www.baidu.com"
    print(getHTMTText(url))	#打印url页面内容

在开始写爬虫时,一定要注意响应状态,如果返回404,我们能及时作出修改。

  1. Response 对象的属性
    r.status_code:HTTP请求的返回状态,200表示连接成功,404表示失败。
    r.text:HTTP响应内容的字符串形式,即URL对应的页面内容。
    r.encoding:从HTTP header 中猜测的响应内容编码方式。
    r.apparent_encoding:从内容中分析出响应内容编码方式(备选编码方式)
    r.content:HTTP响应内容的二进制形式。

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

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

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

http://host[:port][path]
host:合法的Internet主机域名或IP地址
port:端口号,缺省端口为80
path:请求资源的路径

  1. HTTP协议对资源的操作
    GET:请求获取URL位置的资源。
    HEAD:请求获取URL位置资源的响应消息报告,即获得资源的头部信息。
    POST:请求向URL位置的资源后附加新的数据。
    PUT:请求向URL位置存储一个资源,覆盖原URL位置的资源。
    PATCH:请求局部更新URL位置的资源,即改变该处资源的部分内容。
    DELETE:请求删除URL位置存储的资源。
  2. requests.request(method,url,**kwatgs)

method:请求方式,对应get/put/post等7种
url:拟获取页面的url链接
**kwargs:控制访问的参数,共13个

method:请求方式

r=requests.request('GET',url,**kwargs)
r=requests.request('HEAD',url,**kwargs)
r=requests.request('POST',url,**kwargs)
r=requests.request('PUR',url,**kwargs)
r=requests.request('PATCH',url,**kwargs)
r=requests.request('delete',url,**kwargs)
r=requests.request('OPTIONS',url,**kwargs)

**kwargs:控制访问的参数,均为可选项

params:字典或字节序列,作为参数增加到url中。
data:字典、字节序列或文件对象,作为Request的内容。
json:JSON歌手的数据,作为Request的内容。
headers:字典,HTTP定制头、
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证书路径。

发布了19 篇原创文章 · 获赞 2 · 访问量 1102

猜你喜欢

转载自blog.csdn.net/qq_42692319/article/details/102616451