这一部分须要用到request模块,准备工做就是安装request模块。html
安装方法移步:https://www.cnblogs.com/jszfy/p/11210783.htmlpython
import requests # 一、构造请求的URL url = "http://..." # 二、建立请求参数 params = { "mobilephone": "18012345678", "pwd": "123456", "regname": "zfy" } headers ={ "User-Agent":"Mozillas/5.0 test" } # 三、向服务器发起请求 res = requests.get(url, params=params, headers=headers) print(res.text) print(res.json()) print(res.cookies)
res:返回的【response】对象,能够经过【res.属性名】来获取相应的属性内容。json
根据URL能够看出,这里是使用【查询字符串参数】的格式进行传参的。服务器
headers不必定要改,由于有的网站有反爬虫措施,因此须要本身添加合法的请求头。cookie
可是大多数状况下不用修改。session
import requests # 一、构造请求的URL url = "http://...." # 二、建立请求参数 params = { "mobilephone": "17012345678", "pwd": "123456", "regname": "zfy" } headers ={ "User-Agent": "Mozillas/5.0 test" } # 三、向服务器发起请求 # 将参数传递给params,是以查询字符串参数的形式传递参数的 res = requests.post(url, params=params, headers=headers) # 返回的是一个response对象,能够把它当作一个响应报文。 # 将参数传递给data,会以x-www-form-urlencoded的形式来传参 res2 = requests.post(url, data=params, headers=headers) # 若是给json传参,会以json格式的字符串形式来传参。 res3 = requests.post(url, json=params, headers=headers)
import requests # 一、构造请求URL login_url = "http://。。" recharge_url = "http://。。" # 二、建立请求参数 login_params = { "mobilephone": "17012345678", "pwd": "123456", } recharge_params ={ "mobilephone": "17012345678", "amount": "500000", } headers = { "User-Agent": "Mozilla/5.0 sunny" } # 3. 向服务器发起请求 # 先登陆 login_res = requests.post(login_url, data=login_params, headers=headers) # cookie = login_res.cookies['JSESSIONID'] cookie = login_res.cookies # 充值 recharge_res = requests.post(recharge_url, data=recharge_params, headers=headers, cookies=cookie)
建立会话对象session,能够管理cookie值,而不用手动传递。post
关闭会话以后,依然能够发起请求、测试
# 向服务器发起请求 one_session = requests.Session() # 先登陆 login_res = one_session.post(login_url, data=login_params, headers=headers) # 充值 recharge_res = one_session.post(recharge_url, data=recharge_params, headers=headers) # 关闭会话 # 关闭以后, 依然能够发起请求 # 关闭会话只不过是释放资源 one_session.close()
class HandleRequest: """ 处理请求 """ def __init__(self): self.one_session = requests.Session() def to_request(self, url, method="post", data=None, is_json=False): # data = '{"name": "Elice"}' # json格式的字符串 # data = "{'name': 'Elice'}" # 字典类型的字符串 if isinstance(data, str): try: data = json.loads(data) except Exception as e: print("使用日志器来记录日志") data = eval(data) method = method.lower() if method == "get": res = self.one_session.get(url, params=data) elif method == "post": if is_json: # 若是is_json为True, 那么以json格式的形式来传参 res = self.one_session.post(url, json=data) else: # 若是is_json为False, 那么以www-form的形式来传参 res = self.one_session.post(url, data=data) else: res = None print("不支持【{}】其余方法的请求".format(method)) def close(self): self.one_session.close()