今天下午抽时间了解了python爬虫,简单认识了request库
需求:
因为天天需要登录某云app,帮别人签到,所以想写个python脚本来帮忙。
了解request库
request库是一个用于发送HTTP请求的库,可以用于向服务器发送GET、POST、PUT、DELETE等请求,并接收服务器返回的响应。
request库的基本用法如下:
-
安装request库:在命令行中执行
pip install requests
命令即可安装。 -
导入request库:在Python脚本中使用
import requests
语句将request库导入到当前脚本中。 -
发送GET请求:使用
requests.get(url)
函数发送GET请求,其中url
为要访问的URL地址。例如:
python
import requests
# 发送GET请求
response = requests.get('https://www.example.com')
- 发送POST请求:使用
requests.post(url, data)
函数发送POST请求,其中url
为要访问的URL地址,data
为POST请求的参数。例如:
python
import requests
# 发送POST请求
data = {'username': 'admin', 'password': '123456'}
response = requests.post('https://www.example.com/login', data=data)
- 获取响应内容:使用
response.text
属性可以获取响应的内容,使用response.json()
方法可以将响应内容解析为JSON格式的数据。例如:
python
import requests
# 发送GET请求并获取响应内容
response = requests.get('https://www.example.com')
content = response.text
json_data = response.json()
- 处理错误和异常:当访问URL出现错误时,可以使用
response.status_code
属性获取错误码,使用response.raise_for_status()
方法抛出异常。例如:
python
import requests
# 发送GET请求并检查错误
response = requests.get('https://www.example.com')
if response.status_code == 200:
# 请求成功,处理响应内容
content = response.text
else:
# 请求失败,抛出异常
response.raise_for_status()
这只是request库的基本用法,还有许多高级功能和选项可以用来处理不同的HTTP请求和响应。详细的文档可以参考官方网站:https://requests.readthedocs.io/
代码实现:
java
import requests
# 构建请求头部信息
headers = {
"Host": "api.xixunyun.com",
"content-type": "application/x-www-form-urlencoded",
"accept-encoding": "gzip",
"user-agent": "okhttp/3.8.1"
}
# 构建请求参数
data = {
"app_version": "4.9.6",
"registration_id": "",
"uuid": "自己的",
"request_source": "3",
"platform": "2",
"mac": "",
"password": "自己的",
"system": "13",
"school_id": "184",
"model": "自己的",
"app_id": "cn.vanber.xixunyun.saas",
"account": "自己的账号",
"key": ""
}
# 构建请求URL
url = "https://api.xixunyun.com/login/api?from=app&version=4.9.6&platform=android&entrance_year=0&graduate_year=0&school_id=自己的学校名 h2"
# 发起POST请求
response = requests.post(url, headers=headers, data=data)
# 打印响应内容
print(response.text)