获取 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 文件时

子句嵌套的 BigQuery 不符合预期

AttributeError:“屏幕”对象在 Python KivyMD 中没有属性“文本”

drf django rest framework 尝试获取序列化程序“软件序列化程序”上字段“image_id”的值时出现 AttributeError(状态码 406)