浏览器获取京东Cookie教程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浏览器获取京东Cookie教程相关的知识,希望对你有一定的参考价值。

参考技术A 以下内容只限于前端技术交流,请勿用于任何违法行为

浏览器要求:

Chrome浏览器(谷歌)

新版Edge浏览器

国产百分浏览器-CentBrower

国产360、QQ浏览器切换到极速模式

操作步骤:

电脑浏览器打开京东网址: https://m.jd.com/

按键盘F12键打开开发者工具,然后点下图中的图标,切换到触屏版界面浏览!

此时是未登录状态( 建议使用手机短信验证码登录 ),如已登录请忽略此步骤

使用手机短信验证码登录(此方式cookie有效时长大概31天,其他登录方式比较短)

登录后,选择 Network ,有很多链接的话点箭头这里清空下

然后再点我的,链接就变少了

点第一个链接(log.gif)进去,找到Cookie 。

可以看出京东的cookie技术还是很成熟的,自己开发中可以参考该做法。

Selenium+Ruby 实例分析 - 京东抢券 2 处理cookie

上一次给大家介绍了如何登录京东。大家会发现很多时候京东的登录会需要输入验证码,这个时候利用selenium是无法通过图片来获取识别码的。如何获取图片中的识别码是另外一个问题,不在这里讨论。但是我们依然需要解决登录的问题。

大家都知道浏览器是通过cookie来应对HTTP请求的验证的。而Selenium也提供了丰富的关于cookie的处理方法,下面我就通过例子来介绍这些方法。

def store_cookies
  $dr.get("http://www.jd.com/")
  #manual login
  Dir.mkdir "#{File.dirname(__FILE__)}/config.yml" if not File.exist? "#{File.dirname(__FILE__)}/config.yml"
  IO.write("#{File.dirname(__FILE__)}/config.yml", $dr.manage.all_cookies.to_yaml)
end

上面的代码中,第一步是使用webdriver打开京东的首页。这个时候如果需要输入验证码,我们之前的方法就无法成功登录了。这时需要手动登录一次(可以使用pry这个gem来打断点实现操作暂停)。

在登录后的界面,使用 $dr.manage.all_cookies 这个方法来获取当前页面保存的cookies,并把这些cookies以ymal文件的格式保存在配置文件中,方便下次脚本运行时使用。

已经获取了cookie后,在cookie的有效期内可以重复使用。

1 $dr = Selenium::WebDriver.for :chrome
2 $dr.manage.delete_all_cookies
3 cookies = YAML.load(File.open("config.yml"))
4 cookies.each do |cookie|
5   $dr.manage.add_cookie(cookie)
6 end

使用时,首先启动浏览器,然后清空当前浏览器的全部cookies  $dr.manage.delete_all_cookies ,避免干扰。

接着从配置文件中读取保存的cookies。然后把cookies一个个的添加到当前浏览器中。

这个时候再去访问京东的页面,就是已经登录的状态了。

以上是关于浏览器获取京东Cookie教程的主要内容,如果未能解决你的问题,请参考以下文章

Selenium+Ruby 实例分析 - 京东抢券 2 处理cookie

cookie本地存储

cookie跟session自我介绍

cookie和session的自我介绍

怎么获取Cookie

(实用篇)使用Cookie和JSON记录用户最近浏览历史