今天打开程序准备看看有什么新衣服的时候发现读取不到淘宝的搜索页面了,但是类型1的店铺可以读出,遂做了个测试页面,发现首页可以读出,商品页可以读出,但是获取搜索页面的时候,出现搜索结果为0的情况,但是奇怪的是手工打开就没问题,一到php上就出现问题。
在研究了代码后,发现最可能的原因是由于淘宝最近采用了CDN,导致网页的搜索结果缓存在CDN服务器上,使得在抓取网页的时候无法获得结果。
今天又尝试了一下,用正常方式打开可以看到搜索结果,但是用隐身方式打开就显示搜索结果为0,但是登录后就可以。应该是淘宝限制了未登录用户查看店铺搜索
应该不是登录的关系,因为用ie查看不登陆也是可以的,应该是cookies的原因,因为Chrome隐身模式是禁止cookies的
接下来应该是考虑怎么在获取网页的时候保存cookies
这是搜索结果为0的时候的结果容器
<div class="J_TModule" data-widgetid="1054797657" id="shop1054797657" data-componentid="4002" data-spm="110.0.4002-1054797657" microscope-data="4002-1054797657" data-title="宝贝列表"> <!--搜索列表${x-shop-url}请求:searchURL: ,无宝贝:searchURL: http://10.99.152.5:2087/bin/sp?src=shopsystem10.192.4.20&sort=cc_score1:des&sellerid=53568657&tab=all&s=0&n=8&app=inshop&outfmt=json, bucketId: bucketUser: -->
今天试了一下,用Curl模拟cookies,还是不行
今天重新打开试了下,居然可以了,不清楚什么情况
There are no comments yet