爬虫学习3.2 HTTP请求的python实现--Requests

1.实现一个完整的请求和响应模型

#coding=GBK
#实现一个完整的请求和响应模型

import requests
'''
r = requests.get('http://www.baidu.com')
print r.content
'''
#GET请求
'''
postdata = {'key':'value'}
r = requests.post('http://www.baidu.com/login',data=postdata)
print  r.content
'''
#POST请求

payload = {'Keywords':'blog:qiyeboy','pageindex':1}
r = requests.get('http://zzk.cnblogs.com/s/blogpost',params=payload)
print r.url


2.响应与编码
#conding=GBK
#响应与编码
#coding=GBK
#请求头headers处理

import requests
user_agent = 'Mozilla/4.0 (compatible;MSIE 5.5;Windows NT)'
headers = {'User_Agent':user_agent}
r = requests.get('http://www.baidu.com',headers=headers)
print r.content

import requestsimport chardet'''r = requests.get('http://www.baidu.com')print 'content--->' + r.contentprint 'text--->' + r.textprint 'encoding-->'+r.encodingr.encoding='utf-8'print 'new text-->'+r.text''''''r = requests.get('http://www.baidu.com')print chardet.detect(r.content)r.encoding = chardet.detect(r.content)['encoding'] print r.text'''#注意:修改编码形式,从检测编码中提取编码形式,赋给r.encoding实现解码,该模式为全部响应模式r = requests.get('http://www.baidu.com',stream=True)print r.raw.read(10)#设置 stream=Ture标志位,使响应字节以字节流方式进行读取,r.raw.read函数制定读取的字节数


3.请求头headers 处理

#coding=GBK
#请求头headers处理

import requests
user_agent = 'Mozilla/4.0 (compatible;MSIE 5.5;Windows NT)'
headers = {'User_Agent':user_agent}
r = requests.get('http://www.baidu.com',headers=headers)
print r.content
与前文urllib2/urllib实现类似


4.响应码code和响应头headers处理

#coding=GBK
#响应码code和响应头headers处理

import requests
r = requests.get('http://www.baidu.com')
if r.status_code==requests.codes.ok:
    print r.status_code #响应码
    print r.headers #响应头
    print r.headers.get('content-type')#推荐使用这种获取方式,获取其中某个字段
else:
    r.raise_for_status()#用来主动产生异常,当响应码是4xx,5xx时,该函数会抛出异常,当响应码为200时,会返回None


5.Cookis处理

#coding=GBK
#Cookies的处理

import requests
'''
user_agent = 'Mozilla/4.0 (compatible;MSIE 5.5;Windows NT)'
headers = {'User_Agent':user_agent}
r = requests.get('http://www.baidu.com',headers=headers)
#遍历出所有Cookie字段的值
for cookie in r.cookies.keys():
    print cookie + ':' + r.cookies.get(cookie)
'''
'''
user_agent = 'Mozilla/4.0 (compatible;MSIE 5.5;Windows NT)'
headers = {'User_Agent':user_agent}
cookies = dict(name='qiye',age='10')
#自定义cookies值发送
r = requests.get('http://www.baidu.com',headers=headers,cookies=cookies)
print r.text
'''
loginUrl = 'http://www.baidu.com/login'
s = requests.Session()
#首先访问登录界面,作为游客,服务器会先分配一个cookie
r = s.get(loginUrl,allow_redirects=True)
datas = {'name':'qiye','password':'qiye'}
#向登陆链接发送post请求,验证成功,游客权限会转为会员权限
r = s.post(loginUrl,data=datas,allow_redirects=True)
print r.text
#流程为:第一次访问页面,创建cookie,第二次访问,自动将cookie带上 进行访问


6.重定向与历史信息

#coding=GBK
#重定向与历史信息

import requests
r = requests.get('http://www.baidu.com')
print r.url
print r.status_code
print r.history
处理重定向 只需要设置 allow_redirects字段,例如 r=requests('',allow_redirects=True),允许重定向

在允许情况下 通过 r.history查看 访问成功之前的所有跳转信息


7.超时设置

requests.get('http://www.baidu.com',timeout=2)

8.proxy设置

import requests
proxies={
    "http":"http://xxxxx",
    "https":"https://xxxxx"
}
requests.get('http://xxxxx',proxies=proxies)





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值