1 import requests 2 3 # 这个练习演示的是通过传入cookie信息模拟登陆,这样操作的前提是需要预先在浏览器登陆账户抓包得到cookie字段信息 4 5 url = "http://www.360wa.com/" 6 headers1 = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"} 7 8 headers2 = {'Cookie': 'cookie字符串', 9 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'} 10 11 cookie = cookie字符串 12 13 # 这行代码的解释 14 # 首先for i in cookie.split(";") 意思是以分号分割遍历cookie字符串,并保存为变量i(由于cookie是字符串,所以遍历需要指定分隔符) 15 # 其次i.split("=")[0]:i.split("=")[1] 把遍历出来的字符串i再次以等号分割为两部分,索引为0的部分作为字典的key,索引为1的部分作为字典的value 16 cookie_dict = {i.split("=")[0]:i.split("=")[1] for i in cookie.split(";")} 17 print(cookie_dict) 18 19 # 没有携带cookie信息 20 html1 = requests.get(url,headers=headers1) 21 with open("html1.html","w",encoding="utf-8") as f: 22 f.write(html1.content.decode()) 23 24 # 携带cookie信息,方法一,直接在headers里面携带 25 html2 = requests.get(url,headers=headers2) 26 with open("html2.html","w",encoding="utf-8") as f: 27 f.write(html2.content.decode()) 28 29 30 # 携带cookie信息,方法二,单独传入cookies参数 31 html3 = requests.get(url,headers=headers1,cookies=cookie_dict) 32 with open("html3.html","w",encoding="utf-8") as f: 33 f.write(html3.content.decode())