VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • Python之Requests模块使用详解(4)

五、关于Cookies

如果一个响应包含cookies的话,我们可以使用下面方法来得到它们:

1
2
3
4
>>> url = 'http://www.pythontab.com'
>>> r = requests.get(url)
>>> r.cookies['example_cookie_name']
'example_cookie_value'

我们也可以发送自己的cookie(使用cookies关键字参数):

1
2
3
>>> url = 'http://pythontab.com/cookies'
>>> cookies={'cookies_are':'working'}
>>> r = requests.get(url, cookies=cookies)

六、关于重定向

有时候我们在请求url时,服务器会自动把我们的请求重定向,比如github会把我们的http请求重定向为https请求。我们可以使用r.history来查看重定向:

1
2
3
4
5
>>> r = requests.get('http://pythontab.com/')
>>> r.url
'http://pythontab.com/'
>>> r.history
[]

从上面的例子中可以看到,我们使用http协议访问,结果在r.url中,打印的却是https协议。那如果我非要服务器使用http协议,也就是禁止服务器自动重定向,该怎么办呢?使用allow_redirects 参数:

1
r = requests.get('http://pythontab.com', allow_redirects=False)

七、关于请求时间

我们可以使用timeout参数来设定url的请求超时时间(时间单位为秒):

1
requests.get('http://pythontab.com', timeout=1)

八、关于代理

我们也可以在程序中指定代理来进行http或https访问(使用proxies关键字参数),如下:

1
2
3
4
5
proxies = {
  "http""http://10.10.1.10:3128",
  "https""http://10.10.1.10:1080",
}
requests.get("http://pythontab.com", proxies=proxies)

九、关于session

我们有时候会有这样的情况,我们需要登录某个网站,然后才能请求相关url,这时就可以用到session了,我们可以先使用网站的登录api进行登录,然后得到session,最后就可以用这个session来请求其他url了:

1
2
3
4
5
s=requests.Session()
login_data={'form_email':'youremail@example.com','form_password':'yourpassword'}
s.post("http://pythontab.com/testLogin",login_data)
r = s.get('http://pythontab.com/notification/')
print r.text

相关教程