来源:python中国网 时间:2020-03-11

  模拟登陆的常规思路是访问某个url的时候带上cookie参数,尤其是用requests用多了的话,这个简直成了定势思维了!比如以下代码加cookie参数:

headers = {
        'User-Agent': 'xxxxxx',
         "Cookie" : "xxxxxx"
    }

def get_html(url,retry=2):
    try:
        r = requests.get(url=url, headers=headers)
    except Exception as e:
        print(e)
        if retry > 0:
            get_html(url, retry - 1)
    else:
        html = t.text
        return html



  问题来了,突然有一天换成了selenium,那么做模拟登陆的时候按照这个思路可以吗?答案是不可以!

  用selenium切忌不要在打开网址之前就添加cookie,否则报错InvalidCookieDomainException: Message: invalid cookie domain。

  一想要先打开网址,然后再加cookie,再打开网址!

cookie = {'k1':'v1','k2':'v2','k3':v3}
driver.get(url) # 先访问url再加cookie再访问url
for k, v in cookie.items():
    driver.add_cookie({'name': k, 'value': v})
driver.get(url)


  记住!记住!记住!selenium别按照requests模块携带cookie参数的套路来,要不然就错 Message: invalid cookie domain了!

疑难杂症

Tips:不要怕、多坚持、多动手、付出必有回报。