在浏览器中根据头信息模拟ajax请求抓取淘宝商品价格,无法获取response信息。
**在浏览器中输入headers 中的request url,显示的是页面无法访问。
想知道下淘宝试用了什么技术屏蔽了,以及怎么解决这个问题,按道理说展现在客户端的数据都能获取的到的,谢谢?**
测试商品地址:https://detail.tmall.com/item.htm?id=41809359032&skuid=3145753887167
ajax地址:https://mdskip.taobao.com/core/inititemdetail.htm?sellerpreview=false&tmallbuysupport=true&service3c=false&isareasell=false&isapparel=false&cartenable=true&isseckill=false&querymemberright=true&itemid=41809359032&isregionlevel=false&showshopprom=false&household=false&trybeforebuy=false&isuseinventorycenter=false&cachedtimestamp=1461004599117&isforbidbuyitem=false&offlineshop=false&addresslevel=2&callback=setmdskip×tamp=1461017878859&isg=amvlwlj2uz-ewfyjzsxgwuy49suf-rk0
回复内容:
在浏览器中根据头信息模拟ajax请求抓取淘宝商品价格,无法获取response信息。
**在浏览器中输入headers 中的request url,显示的是页面无法访问。
想知道下淘宝试用了什么技术屏蔽了,以及怎么解决这个问题,按道理说展现在客户端的数据都能获取的到的,谢谢?**
测试商品地址:https://detail.tmall.com/item.htm?id=41809359032&skuid=3145753887167
ajax地址:https://mdskip.taobao.com/core/inititemdetail.htm?sellerpreview=false&tmallbuysupport=true&service3c=false&isareasell=false&isapparel=false&cartenable=true&isseckill=false&querymemberright=true&itemid=41809359032&isregionlevel=false&showshopprom=false&household=false&trybeforebuy=false&isuseinventorycenter=false&cachedtimestamp=1461004599117&isforbidbuyitem=false&offlineshop=false&addresslevel=2&callback=setmdskip×tamp=1461017878859&isg=amvlwlj2uz-ewfyjzsxgwuy49suf-rk0
应该是设置了请求头的,看了下请求头,的确添加了很多信息,比如:
:host:mdskip.taobao.com:method:get:path:/core/inititemdetail.htm?cachedtimestamp=1461009311258&cartenable=true&showshopprom=false&isregionlevel=false&isapparel=false&isseckill=false&household=false&trybeforebuy=false&tmallbuysupport=true&isareasell=false&addresslevel=2&isuseinventorycenter=false&itemid=41809359032&service3c=false&isforbidbuyitem=false&querymemberright=true&sellerpreview=false&offlineshop=false&callback=setmdskip×tamp=1461033279024&isg=atzcyw2gfj356uez3f1pospplpgosib9:scheme:https:version:http/1.1
这些:开头的。
尝试了下,仅仅使用这些:开头的,还是获取不到数据,所以,直接使用了完整的请求头,是可以获取到数据的。
个人觉得,除了:开头的请求头之外,下面这两信息也很重要:
cookie:thw=cn; _tb_token_=gzxg9wrstlib; t=d11a113cccfbf234424ce707c955b9dd; cookie2=d6cd51e3c36d47dac9fabd9d79a11cd9; v=0; cna=h6pvd4r7/tgcabax1qjodtvu; _m_h5_tk=7660b8def380dbda6d85d45bc16b5726_1460713055364; _m_h5_tk_enc=23dd2b0a97166d8978bc9ecee14d6512; l=aqcggx9hg8f3ay1ncdhlo1gx8kvyq4rzreferer:https://detail.tmall.com/item.htm?id=41809359032&skuid=3145753887167
尤其是cookie,从他代码中看到设置了referer的,没有测试是否可以去掉该设置,你可以自己设置。
所以,天猫这个限制,应该是请求头+cookie+(或者还有其他)的方式来处理的,你只需要模拟类似的请求,添加这些请求信息即可。
