请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于淘宝网

图片描述
图片描述

老师,请问我想调取淘宝网详情页评论的标签的接口直接获取数据,但是为什么我在未登录而且清理了浏览器缓存的情况下输入https://rate.tmall.com/listTagClouds.htm?itemId=627037643930&isAll=true这个URL,浏览器可以直接访问,然后我用python的request调用,得到的是请登录的页面,然后我加了headers的user-agent还是不行,我对照了一下,原来浏览器自动给我请求加了个cookie,但是我多调用了几次好像直接就被后台识别了,返回的是登录页面的参数。请问这个是什么原理呢?为什么我清空缓存而且没有账号登录,用浏览器访问他API的时候回自带一个cookie,而且淘宝后台还能识别这个cookie?

正在回答 回答被采纳积分+3

2回答

提问者 墨语迟 2020-11-27 02:11:48

这好像是第一次请求的时候,后台给了一个302的重定向,然后才给的cookie。那如果这种情况要怎么才能爬取这个接口的信息呢?淘宝后台用这种方法,应该是给每个用爬虫的人一个身份cookie,这样不管你用多少个代理ip但是cookie没变,这种情况怎么应对呢?

0 回复 有任何疑惑可以回复我~
提问者 墨语迟 2020-11-27 01:30:25

我试了一下其它网站,未登录情况请求头也带来cookie的,你课上不是说应该是先请求,然后后台为了识别身份才加的cookie吗?那这样在第一次请求的时候应该是不带cookie的呀?如果这样,能不能不用浏览器而直接用requests来模拟请求并且获得这个cookie呢?

0 回复 有任何疑惑可以回复我~
  • bobby #1
    这样说:cookie是本地浏览器的一种机制, 服务器可以放登录之后的sessionid到cookie中,也可以放其他的数据到cookie中,你可以想一下:你在未登录的状态下访问了淘宝的某个商品,结果等你登录以后你会发现居然淘宝能知道你这个账户之前浏览器过某个商品,然后给你推荐类似商品,是不是我的什么信息被泄露了? 其实淘宝是一开始的时候当你访问的时候一定要在你的cookie中给你放一些id,这些id不是登录之后才能生成,也不会和你的账号绑定,主要是通过这些id来跟踪你的浏览器记录,也就是说:淘宝在监视你,当你登录以后,这个时候淘宝发现:这人登录的时候cookie中有一个之前我给他的随机id, 好的,这个时候我就把这个id下的所有浏览器记录绑定到你的账号下, 所以你无论你怎么做淘宝都能把你未登录的访问和你的账号关联起来:所以这也就是我们说的隐私问题, 如果这个时候你这样做: 我在未登录的时候访问了某些不想让人知道的商品,访问完成以后,我们把浏览器的缓存清空,这个时候淘宝会重新给我生成一个id,这个id我不去访问任何信息,这个时候登录 淘宝就把新的id和我的登录账号绑定了 就无法知道我访问什么数据了
    回复 有任何疑惑可以回复我~ 2020-11-28 09:46:13
  • 提问者 墨语迟 回复 bobby #2
    import requests
    headers = {
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3823.400 QQBrowser/10.7.4307.400'
    }
    req = requests.get('https://www.taobao.com', headers=headers)
    cookie = req.cookies
    cookies = requests.utils.dict_from_cookiejar(cookie)
    print(cookies)
    print(req.text)
    
    老师我写了这几行代码,目的是我发现可以用淘宝生成的随机cookie访问详情页的tags标签,我的想法是直接用requests访问淘宝首页,拿到随机cookie,然后绑定一个随机IP和随机user-agent,将这3个绑定一起来一直爬取tags标签,这样就算淘宝后台发现了,那么我的(cookie,IP,UA)都是随机的,这样我直接放弃这组数据,在生成个随机cookie,IP和UA ,这样只要淘宝不设定登录才能看我就能一直爬取。但是上面的代码为什么访问百度能拿到cookie,然而访问淘宝得到的cookie却是空的呢?
    回复 有任何疑惑可以回复我~ 2020-11-29 00:41:17
  • bobby 回复 提问者 墨语迟 #3
    每个网站的机制不一样,不是说百度可以访问 淘宝就必须也能访问
    回复 有任何疑惑可以回复我~ 2020-11-30 10:32:01
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信