Django 用户认证 用户 邮箱登录 邮箱注册 ORM or,and,not form.py FORM ModelForm Paginator 分页 HTMl JQuery 定位元素 ajax django切片 restfulapi 跨域 Ubantu Python Mysql Scrapy 爬虫 导出 Python读写 Pycharm 破解 session re sqlit3 生成式 其他 Prism 富文本 CSS Nginx 部署 请求头 抓包 协议 selenium Ubuntu 宝塔 AI Comfy-ui ollama dify open-webui Git docker
selenuim登录淘宝,保存cookie时遇到的问题
张建行 2024年12月9日 21:14 224 文章标签: 跨域 Python 爬虫 破解 session 请求头 抓包 协议 selenium

 tb_url = 'https://s.taobao.com/search?q=%E7%91%9E%E5%AE%8F%E7%B2%BE%E5%AF%86&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20230316&ie=utf8&bcoffset=3&p4ppushleft=2%2C48&ntoffset=3&s=132'

以上是要爬取的url,注意域名是https://s.taobao.com相较与taobao.com多了一个s所以在向selenuim浏览器添加保存好的cookie时需要先让浏览器去直接访问这个网址’https://s.taobao.com

注意:不要直接访问

tb_url = 'https://s.taobao.com/search?q=%E7%91%9E%E5%AE%8F%E7%B2%BE%E5%AF%86&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20230316&ie=utf8&bcoffset=3&p4ppushleft=2%2C48&ntoffset=3&s=132'

因为在没有登录的状态下,url会跳转到登录页面https://login.taobao.com/member/login.jhtml注意登录页面的域名为大家所熟悉的taobao.com。而登录成功之后的域名为s.taobao.com。保存好的cookie域名也是s.taobao.com

所以如果直接重定向到登录页面的话,浏览器的当前域名为taobao.com而cookie中保存的域名为s.taobao.com域名不一致,导致抛出异常Message: invalid cookie domain: Cookie 'domain' mismatch(Session info: chrome=110.0.5481.178)

正确的访问方法为:

先分析登录成功之后的域名为什么

查看保存好的cookie域名是否和登录之后的域名一致

先让selenuim浏览器访问登录成功之后的域名(也是cookie中保存的域名)注意查不要重定向到其它域名

当浏览器当前域名和cookie中的域名一直后,再去通过add_cookie()去添加保存好的cookie

总结:

总而言之,一定要保证添加cookie时浏览器当前的域名和cookie中的域名是一样的,否则会添加失败抛出异常Message: invalid cookie domain: Cookie 'domain' mismatch (Session info: chrome=110.0.5481.178)