近期学习了 Python 的 Requests 库,在网页请求、信息处理及内容存储等方面有一定收获,现在从 Cookie 处理、Header 与 User - Agent、文件操作进行总结。
Cookie 是服务器传递给客户端的小文本文件,用于记录用户信息,在维持用户会话等场景中作用关键。
使用 requests.get 发送请求后,response.cookies 可获取 CookieJar 对象形式的 Cookie。若要更便捷地以键值对形式操作 Cookie,可借助 requests.utils 模块的方法转换:
pythonimport requests
url = 'http://www.baidu.com'
response = requests.get(url)
# 获取 CookieJar 形式的 Cookie 并打印
print(response.cookies)
# 将 CookieJar 转换为字典形式并打印
dict_cookies = requests.utils.dict_from_cookiejar(response.cookies)
print(dict_cookies)
# 将字典转换回 CookieJar 形式并打印
jar_cookies = requests.utils.cookiejar_from_dict(dict_cookies)
print(jar_cookies)
当获取到字符串形式的 Cookie 时,也能将其转为字典以便操作。比如有字符串 temp 存储 Cookie 信息:
pythontemp = "name=value; age=18; gender=male"
cookie_list = temp.split(';')
cookies = {cookie.split('=')[0].strip(): cookie.split('=')[-1] for cookie in cookie_list}
print(cookies)
这里先按 ; 分割字符串得到 Cookie 列表,再通过字典推导式,按 = 分割每个 Cookie 项,生成键值对形式的字典。
Header(请求头)包含请求的相关信息,User - Agent 是 Header 中的一个字段,它能让服务器识别客户端的操作系统及浏览器等信息。在请求中设置合适的 User - Agent,有助于模拟正常的浏览器请求,避免被服务器识别为异常请求而拒绝访问。例如:
pythonimport requests
url = "https://example.com"
headers = {
"User - Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
response = requests.get(url, headers=headers)