#coding=utf-8
import requests
'''
get和post封装的方法,如果是要爬取的网址可以直接从浏览器中打开,可以使用
如果需要类似于 登录 的时候尽量不要使用封装,需要登录的网址,通常需要cookie,
我们封装的,每次建立连接都会产生一次新的会话,cookie容易丢失
'''
def get(url,params=None,cookie=None,header=None, verify=False,proxies=None):
# 建立session
# 设置要返回的内容,以字典形式存在
session = requests.session()
ret={}
ret['issuccess']=False
try:
# 判断参数、cookie、header、verify是否存在
if params:
session.params = params
if cookie:
session.cookies = cookie
if header:
session.headers = header
if verify==True:
session.verify=verify
if proxies:
session.proxies = proxies
# 发送请求
rets = session.get(url,verify=verify)
if rets:
# 如果请求的数据是正常响应的,返回响应的数据
ret['issuccess']=True
ret['message']=rets.content
except Exception, e:
print e.message
finally:
if session:
session.close()
return ret
def post(url,data,params=None,cookie=None,header=None, verify=False,proxies=None):
# 建立会话
session = requests.session()
# 设置返回内容
ret = {'issuccess':False}
try:
if params:
session.params = params
if cookie:
session.cookies = cookie
if header:
session.headers = header
if verify == True:
session.verify = verify
if proxies:
session.proxies = proxies
rets = session.post(url=url,data=data,timeout=20,verify=verify)
if rets:
ret={'issuccess':True,'message':rets.content}
except Exception,e:
print e.message
finally:
if session:
session.close()
return ret