python之requests包

requests模块是python中常用的写网页爬虫程序的包,requests可以发送HTTP请求,并获取请求状态及请求内容,也可以用来做接口自动化测试。以下是我总结的requests模块的常用方法

首先使用requests包之前首先需要安装包,直接pip install requests即可自动安装requests包,以下是简单介绍了requests包的多个方法的使用

一,发送请求

get请求:

不带参数

import requests

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

print response.status_code#打印响应状态码

带参数

第一种形式:

import requests

response=requests.get('http://www.baidu.com?name=test&age=18')

print response.status_code

第二种形式:

import requests

data={'name':'test','age':18}

response=requests.get('http://www.baidu.com',data=data)

print response.status_code

 

post请求:

#coding=utf-8

import requests

data={'name':'tom',"age":22}

response=requests.post('http://httpbin.org/post',data=data)

print response.status_code

 

 

带请求头:

import requests

head={}

head['User-Agent']='Mozilla/5.0(Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0'

req3=requests.get('http://www.shinzenith.com/',headers=head)

print req3.status_code

注:可以通过fiddler看到请求头信息

保持统一会话

用户未登录访问网站主页,显示未登录的页面;登录成功后再次主页页面会显示登录的用户信息。用户登录成功后访问的页面,服务器是通过cookie或者session机制来校验用户信息保持统一会话的

带cookie的请求:

首先获取cookie值,cookie可以从请求中获取。如下:

#coding=utf-8

import requests

response1=requests.get('http://www.shinzenith.com/')

print response1.status_code

print response1.cookies

结果:

200

<RequestsCookieJar[<CookieJSESSIONID=316703C12044E559E0698D96D8899716 for www.shinzenith.com/>]>

 

然后带上上一个请求的cookie值访问新的请求。
datas= {'userName': ???, 'picCode': '', 'passWord': ???, 'referer':''}
cookie=requests.post('http://www.???.com/user/dologin',data=datas).cookies#获取登录请求的cookie
rep4=requests.get('http://www.???.com/',cookies=cookie)#带上登录请求的cookie访问首页
print cookie
print rep4.text#打印的页面s登录后的页面

带有session的请求:

session=requests.session()#保持统一会话的核心
datas= {
'userName': ???, 'picCode': '', 'passWord': ???, 'referer': ''}
html=session.post(
'http://www.???.com/user/dologin',data=datas)
html2=session.get(
'http://www.???.com/')

取消证书验证

import requests
import urllib3
urllib3.disable_warnings()  #urllib3中消除警告
response = requests.get('https://www.12306.cn/mormhweb/',verify=False#证书验证设为FALSE

设置请求超时时间

 

try:
    html=requests.get('http://www.baidu.com',timeout=3)
except Exception,e:
    print e

设置获取请求网站的超时时间为3秒,如果3秒没有响应则会抛出超时异常

二,服务端响应

response=requests.get(url)

response.encoding=response.apparent_encoding# response.apparent_encoding是指从内容中分析出的响应内容编码方式,如果网页文本是乱码,加上这句就可以解决乱码问题

获取响应状态码:

response.status_code

获取响应文本:

response.text

获取cookie:

response.cookies

响应信息为json串,直接转换为python对象
response.json()
返回响应头信息:

response.headers

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值