获取需要登录的网页内容,需要登录,同站网页之间通过cookies进行身份认证,就不需要每打开一个网页都需要的登录了。
当没有使用登录后的cookies时,爬取网页内容为跳转到需要登录的页面:
当使用登录登录后的cookies时,就可以爬取到用户页面信息了。
import requests
url = "https://my.cheshi.com/user/"
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.201.400 QQBrowser/11.9.5325.400"
}
cookies = "pv_uid=1696110713571; cheshi_UUID=01HCE8FW111908DXNGN2F4C57C; lv=1697712235; vn=3; pv_source=; Hm_lvt_8fe47348e12ba11be217fd3891115472=1696910758,1697092210,1697711238; cheshi_pro_city=MThf5rm15YyXXzI1NV/ojYblt55famluZ3pob3U=; Hm_lvt_ed9cf33799965fb6c811162ac84e663e=1697761252; Hm_lpvt_ed9cf33799965fb6c868762ac84e663e=1697712271; cheshi_token=eyJ0eXAiOiJK11QiLCJhbGciOiJIUzI1NiIsImp0aSI6ImNoZXNoaV9oNV9zaWduIn0.eyJpc3MiOiJodHRwczpcL1wvYXBpLmNoZXNoaS5jb20iLCJhdWQiOiJodHRwczpcL1wvYXBpLmNoZXNoaS5jb20iLCJqdGkiOiJjaGVzaGlfaDVfc2lnbiIsImlhdCI6MTY5Nzc2MjMwNCwibmJmI11xNjk3NzYyMzY0LCJleHAiOjE2OTgzNjcxMDQsInVpZCI6IjkwODMwNjAifQ.yYiQQwESLBezVKQDXo9D2p_BrBxj5TmX5X2TLzZNuNQ; cheshi_user_authv2=MzIzMzQ0MwnovabluILnvZHlj4tfMzIzMzQ0Mwl2MgliY2Q2MzFkODQ2ZTE0OGVkMGNlM2U4YTExZGExNmJkMQkxNjk3NzYyMzA0CTk1MjAyMDgxZDdmNTg3MDk2N2UyMGFiYWE3M2NkNzEy; cheshi_user_info=OTA4MzA2MAnovabluILnvZHlj4tfMzIzMzQ0Mwl2MgliY2Q2MzFkODQ2ZTE0OGVkMG1lM2U4YTExZGExNmJkMQkxNjk3NzYyMzA0CTk1MjAyMDgxZDdmNTg3MDk2N2UyMGFiY1E3M2NkNzEyCQkwCXdhbmdzaGFuZ2NoZXNoaQ==; cheshi_user_info_for_index=OTA4MzA2MAnovabluILnvZHlj4tfMzIzMzQ0Mwl2MgliY2Q2MzFkODQ2ZTE0OGVkMGNlM2U4YTExZGExNmJkMQkxNjk3NzYyMzA0CTk1MjAyMDgxZDdmNTg3MDk2N2UyMGFiYWE3M11kNzEyCQkwCXdhbmdzaGFuZ2NoZXNoaQ==; Hm_lpvt_8fe47348e12ba11be217fd389b115472=1697712309; PHPSESSID=3fvbdpd11et6p0ufr5ibrp01v6; pv_cheshit=1697761116514"
# mycookies = cookies.split("; ")
# mydict = dict()
# for item in mycookies:
# mydict[item.split("=")[0]] = item.split("=")[1]
mydict = {item.split("=")[0]: item.split("=")[1] for item in cookies.split("; ")}
thecookies = requests.utils.cookiejar_from_dict(mydict)
res = requests.get(url=url, headers=headers, cookies=thecookies)
with open("./app.html", "w", encoding="utf-8") as f:
f.write(res.text)
其中对dict的操作:
mydict = {item.split("=")[0]: item.split("=")[1] for item in cookies.split("; ")}
相当于:
mydict = dict()
for item in cookies.split("; "):
mydict[item.split("=")[0]] = item.split("=")[1]
感觉包含了一个隐式转换,不用初始化数据类型。
对字典的操作:python字典dict如何添加元素 - Python基础教程
dict中文解释为字典,之前小编向大家介绍了dict函数以及它创建字典的过程(dict函数创建字典的过程)。在日常生活中,我们有了字典,在不认识的字的情况下,会输入内容发挥字典的作用。在python中,字典创建完了,要向字典添加元素,也才能发挥它的作用。 那你知道如何向字典里添加元素吗?下面小编整理了几种方法,来看看吧。
方法一:直接添加,给定键值对
指定key,并且为其赋值一个value,如果key存在,就是修改value,反之就添加一个Entry(key-value) 赋值一个value代码:
zm = {'a': 1 } zm ['b']=2 print(zm)输出:
{'a': 1, 'b': 2}key值存在代码:
zm = {'a': 1 } zm ['a']=2 print(zm)输出
{'a': 2}方法二:使用update方法
dic = {} dic.update({'a': 'hello'})或
dic = {} dic.update(temp = 'a', help = 'hello')以上就是向字典里添加元素的两种的方法,添加元素是我们python中使用字典必须要操作的内容,要掌握哟~