安装requests
第三方库,需要安装,pip install requests
以下是代码,我会根据代码来给大家解释怎么使用。(完整实例)
第一步,先引入第三方包:import requests
第二步,我们准备请求数据:
params = {'wd': 'python'} 请求参数url = 'http://www.baidu.com/s?' 请求地址
headers = {} 请求header头
第三步,发起get请求:r = requests.get(url, params=params, headers=headers)
第四步,手动设置编码:r.encoding = ''
第五步,获取请求完的内容 r.text # 返回的是一个字符串文本内容 r.content # 返回的是二进制
如上,我们是使用的get请求。接上代码,我们看看post请求怎么使用。
第一步,发起post请求,参数:url是路由,data是post的参数。requests.post(url=url, data={})
第二步,查看返回的数据。r.json() # 返回字典
处理cookie,获取cookie
在我们爬取数据,或者请求url之后,返回的header中,有cookie,我们会对这些cookie做处理,然后使用它来做之后的请求等操作。
接着上面的操作,我们在请求url之后,假设会返回一些cookie,我们保存下来。一般,我们存储cookie方式:1,写文本2,数据库,存储为字典形式是因为resques接受的参数是字典的形式。
cookies = {}for items in r.cookies.items():
cookies[items[0]] = items[1]
接上代码,我们再次发起请求,这次,我们使用cookies参数。r = requests.get(url, params={}, headers={}, cookies={})
我们在抓包,可能使用带代理,requests也支持代理的使用。r = requests.get(url, params={}, headers={}, cookies={}, proxies={})
在抓包请求url的时候,我们可能会遇到重定向,比如,http协议的百度,就会重定向到https协议的百度。 r = requests.get(url, params={}, headers={},cookies={},proxies={},allow_redirects=False) 重定向,false禁止重定向,true开启重定向
刚刚说到https,此协议会证书校验,我们可以跳过证书校验。r = requests.get(url, params={}, headers={},cookies={},proxies={},allow_redirects=False,verify=False)#禁止证书校验ssl
在请求url的时候,可能在一定时间请求不到,这个时候,会请求失败,我们可以设置一个超时时间。r = requests.get(url, params={}, headers={},cookies={},proxies={},allow_redirects=False,timeout=1)#设置超时
我们也会遇到使用session的情况:
#创建session对象