Python+selenium使用cookie登录淘宝

众所周知,使用常规方法爬取淘宝的难度是很高的,所以使用selenium+浏览器几乎成了爬取淘宝最理想的方法。然而现在淘宝搜索需要用户登录才可以,据说是为了收集匹配用户信息。


taobao.gif

而每次使用selenium时(+chrome),chromedriver会新打开一个浏览器窗口,所以添加cookie便显得很必要了。
这里看一下selenium的add_cookie方法

20190105143721122.png

与普通的在headers里添加{'Cookies':' '}不一样的是,此方法需要按照cookie的name,value,path,domain格式逐个cookie添加,如下图

淘宝cookies格式

淘宝的cookie很多,所以需要逐项添加
而手动复制的话很不方便,所以这里使用到一个chrome插件
EditThisCookie

EditThisCookie

它有个导出功能,当你登录完淘宝后点击导出便会得到一个list格式的字符串

cookies=
[
{
    "domain": ".baidu.com",
    "expirationDate": 1563853177.468827,
    "hostOnly": false,
    "httpOnly": false,
    "name": "BAIDUID",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "C0E2BCF5DCEB680B2453F78AC4CD0956:FG=1",
    "id": 1
},
{
    "domain": ".baidu.com",
    "expirationDate": 1546756058.11283,
    "hostOnly": false,
    "httpOnly": false,
    "name": "BDORZ",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "FFFB88E999055A3F8A630C64834BD6D0",
    "id": 2
},
{
    "domain": ".baidu.com",
    "expirationDate": 3648534764.317173,
    "hostOnly": false,
    "httpOnly": false,
    "name": "BIDUPSID",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "CC0841B75FADCE2D56D45D685391FED0",
    "id": 3
},
{
    "domain": ".baidu.com",
    "hostOnly": false,
    "httpOnly": false,
    "name": "H_PS_PSSID",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": true,
    "storeId": "0",
    "value": "",
    "id": 4
},
{
    "domain": ".baidu.com",
    "expirationDate": 2493441539.633233,
    "hostOnly": false,
    "httpOnly": false,
    "name": "MCITY",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "-%3A",
    "id": 5
},
{
    "domain": ".baidu.com",
    "expirationDate": 3648534764.317246,
    "hostOnly": false,
    "httpOnly": false,
    "name": "PSTM",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "1501051117",
    "id": 6
},
{
    "domain": ".www.baidu.com",
    "expirationDate": 2492662056,
    "hostOnly": false,
    "httpOnly": false,
    "name": "bdime",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "0",
    "id": 7
}
]

稍加修改就可以作为python的list来导入cookie了

for item in cookies:
    driver.add_cookie(item)

之后使用selenium就可以正常搜索了


淘宝搜索
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇文章在介绍官网的同时使用了比较多的脚本示例,示例里遇到的问题有部分在本篇文章进行了解释,还有一篇文章专门记录了...
    顾顾314阅读 12,968评论 3 32
  • 转自Selenium WebDriver注意:本章内容官方团队正在完善中。 介绍 WebDriver### Sel...
    抓兔子的猫阅读 7,777评论 2 22
  • 基于 SELENIUM 的自动化测试架构 非常感谢各位查阅本篇文章,笔者在此感谢各位。 目前市面上有分门别类的自动...
    厲铆兄阅读 6,100评论 6 43
  • 洞见SELENIUM自动化测试 写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出...
    厲铆兄阅读 6,754评论 3 47
  • 突然, 想许一头长发, 盛满无尽的温柔; 低头,发落至你额前, 亲吻,发香游离唇齿, 撩于耳后肩头, 为你流放。 ​​​
    太阳下的麦子阅读 329评论 0 0