文章目录

  • 1、简单介绍requests的使用方法
  • 2、爬虫中六种常用的异常处理。
  • 3、requests库的七个主要方法。
  • 3.1 七个主要方法
  • 3.2 HTTP协议对资源的操作
  • 4、requests库方法的参数详解
  • 4.1 request()参数(requests.request(method, url, **kwargs))
  • 4.1.1 method
  • 4.1.2 url
  • 4.1.3 **kwargs对应的13个参数
  • 4.1.4 具体使用方法
  • 4.2 其他六个方法的参数


1、简单介绍requests的使用方法

以百度网站为例:

import requests
r = requests.get('http://www.baidu.com')

print(r.status_code)

调用status_code后,会返回一个值,如果返回值为200,则代表访问成功。
接着使用text查看内容:

print(r.text)

我们会发现有许多乱码,因此就需要改变编码方式。

print(r.encoding)
print(r.apparent_encoding)
r.encoding = r.apparent_encoding
# 也可以这样写
# r.encoding = 'utf-8'

python 文章热度_http


encoding方法是从HTTPheader中猜测响应内容的编码,但如果header中不存在charset字段,就默认编码为ISO-8859-1,而apparent_encoding则是从内容中分析编码,只需将它赋给encoding 即可。

下面是爬虫通用代码框架:

import requests
try:
    url = 'http://www.baidu.com'
    r = requests.get(url)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text)
except:
    print("爬取失败")

r.raise_for_status()用来判断status_code的返回值,如果不是200,则返回一个HTTPError异常。

2、爬虫中六种常用的异常处理。

异常

说明

requests.ConnectionError

网络连接错误异常, 如DNS查询失败,拒接连接等

requests.HTTPError

HTTP错误异常

requests.URLRequired

URL缺失异常

requests.TooManyRedirects

超过最大重定向次数,产生重定向异常

requests.ConnectTimeout

连接远程服务时,超时异常

requests.Timeout

请求URL超时, 产生超时异常

3、requests库的七个主要方法。

3.1 七个主要方法

方法

说明

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

3.2 HTTP协议对资源的操作

方法

说明

GET

请求获取URL位置资源

HEAD

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

POST

请求向URL位置的资源后添加新的数据

PUT

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

PATCH

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

DELETE

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

4、requests库方法的参数详解

4.1 request()参数(requests.request(method, url, **kwargs))

4.1.1 method

请求方式,对应GET、POST、PUT等七种操作方法

4.1.2 url

文本连接

4.1.3 **kwargs对应的13个参数

参数

说明

params

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

data

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

json

JSON格式的数据,作为request的内容

headers

字典,HTTP定制头

cookies

字典或CookieJar, request中的cookie

auth

元组,支持HTTp认证功能

files

字典类型,传输文件

timeout

设定超时时间,秒为单位

proxies

字典类型,设定访问代理服务器,可以增加登录认证

allow_redirects

重定向开关,默认为True

stream

获取内容立即下载开关,默认为True

verify

认证SSL证书开关,默认为True

cert

本地SSL证书路径

4.1.4 具体使用方法

以params和headers为例,其他类似:

import requests

kv1 = {'key1': 'value1', 'key2': 'value2'}
kv2 = {'User-Agent': 'chrome'}
url = 'http://www.baidu.com'
r1 = requests.request("GET", url, params=kv1)
r2 = requests.request('POST', url, headers=kv2)

# 使用params后
print(r1.url)

# 原User-Agent显示为python爬虫
print(r1.request.headers)

# 伪装为谷歌浏览器chrome进行访问后的User-Agent
print(r2.request.headers)

结果:

python 文章热度_HTTP_02

4.2 其他六个方法的参数

1、

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

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)

对应参数即为上面内容。