获取 AttributeError 以尝试访问预期的 cookie
Posted
技术标签:
【中文标题】获取 AttributeError 以尝试访问预期的 cookie【英文标题】:Getting AttributeError for trying to access expected cookie 【发布时间】:2022-01-08 09:54:12 【问题描述】:如下所示,字典确实包含一个带有“名称”属性的 cookie。出于某种原因,代码运行了一次,现在每次运行时都会抛出此错误:
File "/Users/me/Documents/Programming/browzine/last draft.py", line 201, in <lambda>
cookie_list = list(map(lambda h: h.name+'='+h.value+'; ', driver.get_cookies()))
AttributeError: 'dict' object has no attribute 'name'
这是我使用 Selenium 的 driver.get_cookies()
打印 cookie 时得到的结果:
'domain': '.idm.oclc.org', 'httpOnly': True, 'name': 'ezproxyl', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': 'snKQGpdG4GDPhMd'
'domain': '.idm.oclc.org', 'httpOnly': True, 'name': 'ezproxyn', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': 'snKQGpdG4GDPhMd'
'domain': '.idm.oclc.org', 'httpOnly': False, 'name': 'ezproxy', 'path': '/', 'secure': False, 'value': 'snKQGpdG4GDPhMd'
我的代码:
def check_need_to_sign_in():
new_tab = driver.window_handles
driver.switch_to.window(str(new_tab[-1]))
url = driver.current_url
i = 0
try:
WebDriverWait(driver, 5).until(EC.element_to_be_clickable(
(By.XPATH, "//input[@class='form-control ltr_override input ext-input text-box ext-text-box']")))
print("Sign-in necessary")
for cookie in driver.get_cookies():
print(cookie)
cookie_list = list(map(lambda h: h.name+'='+h.value+'; ', driver.get_cookies()))
cookie_string = ''.join(cookie_list)
print(cookie_string)
headers =
headers["Cookie"] = cookie_string
s = req.session()
s.headers.update(headers)
for cookie in driver.get_cookies():
print(cookie)
sign_in()
response = req.get(url, verify=False)
while i < 1:
print(response.ok)
if response.ok == True:
with open(f"article_title[13:].pdf", 'wb') as f:
f.write(response.content)
i = + 1
【问题讨论】:
【参考方案1】:使用d['name']
或d.get('name')
从字典中获取值。 d.name
在 python 中不起作用。
【讨论】:
以上是关于获取 AttributeError 以尝试访问预期的 cookie的主要内容,如果未能解决你的问题,请参考以下文章
Python:获取 AttributeError:'LogisticRegression' 对象在尝试使用预测时没有属性 'classes_'
AttributeError: 'property' 对象没有属性 'copy' - 尝试在 Django Rest 中获取对象列表时
获取 AttributeError: 'dict' object has no attribute 'parse' 。尝试读入多个 xlsx 文件时
AttributeError:“屏幕”对象在 Python KivyMD 中没有属性“文本”
drf django rest framework 尝试获取序列化程序“软件序列化程序”上字段“image_id”的值时出现 AttributeError(状态码 406)