python爬虫发送post登录请求的两种方式
程序员文章站
2023-12-12 17:05:52
python post请求是爬虫中用的比较多的一个场景,如何实现呢?这里主要涉及到requests模块中post方法导入request模块 import requests自定应...
python post请求是爬虫中用的比较多的一个场景,如何实现呢?这里会介绍两种实现方式
一、request.post请求
- 导入
import requests
包 - 模拟一个登录请求,自定义data数据字典
data = {
'userName': '019630',
'password': 'b7cb02c884c96820027592ed0b002b06',
'systemCode': 'SSO',
't': 0,
'userAccountType': 'Portal'
}
- 请求代码
response = requests.post(url='http://xxx.uc56.com/omg-sso-main/login.action', data=data)
return response.text
- 返回信息
{"errorCode":"B3008","errorMsg":null,"token":"O/wWQuCQCIvNpP5Gw8aAvcDKleef5SGAy1SyHmZNeoT6iv5V5KT6Ag==","userName":"019630","empCode":"019630","systemCasUrlList":[],"updPwdFlag":true,"updPwdIntervalDay":66,"errorCount":null,"checkCode":null,"scanSystemCode":null}
二、requests.request 请求
- request请求与post类似,我们通过源码分析,post实际也是调用了request示例化请求
def post(url, data=None, json=None, **kwargs):
r"""Sends a POST request.
:param url: URL for the new :class:`Request` object.
:param data: (optional) Dictionary, list of tuples, bytes, or file-like
object to send in the body of the :class:`Request`.
:param json: (optional) json data to send in the body of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""
return request('post', url, data=data, json=json, **kwargs)
- 再分析底层代码我们
with sessions.Session() as session:
return session.request(method=method, url=url, **kwargs)
- 改造request请求
response = requests.request(method='POST', url='http://xxx.uc56.com/omg-sso-main/login.action', data=data)
return response.text
范围结果一致
本文地址:https://blog.csdn.net/jun118166/article/details/107041616
推荐阅读