python爬虫——与不断变化的页面死磕和更新换代(3)

本文记录了一次使用PhantomJS爬取淘宝商品页面的过程及遇到的问题。包括解决Python2编码导致的乱码问题、PhantomJS限制及淘宝sign机制解析等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  经过上一次的实战,手感有了,普罗西(雾)池也有了,再战taobao/tmall

  试着使用phantomJS爬手机端,结果发现爬来的tmall页面全是乱码,taobao页面xpath识别错误。一顿分析了之后才发现:TMD我的python2会把编码搞乱,phantomJS不支持手机独有的tap()操作!!!

  幸好之前还分析了下taobao的sign。sign是一串数字组合再进行md5的32bit加密。md5(c.token + "&" + new Date().getTime() + "&" + appKey + "&" + b.data),里面的token = new Date().getTime()+":"+Math.random()(麻烦在于这玩意儿是页面代码,就是说必须先获得主页面的token才能进去,这样这个JS的解析步骤就不能少,更惨的是老夫还不会在phantomJS里抓包),这是解开taobao商品页面sign的关键;kissy的_ksTS里前面一段是unix时间戳,右边是随机数字,jsonp右边的数字就是这个随机数字+1

  某些关键词的大多数商品是tmall,所以数据损失倒也不大。taobao先慢慢phantomjs吧。

  然后就升级了python3,以破解乱码

  之后经过了蛋疼的写入文件乱码,在write()加入encoding='utf-8'就解决了

  爬电脑端淘宝咯~~结果页面的xpath老是解析错误??

  而且每次的出错信息还不带重样的?看情况,返回的页面class名还不一样?

  回去研究下解决了,如果重复载入同一url太多,后面几个页面都是只留一半商品信息,下一页按钮都不加载出来的。

  偏偏这个按钮的class是唯一的(这个在爬虫正常运作时是优势,但是爬虫爬到的网页稍有差错就直接崩)

  后来用原url做了下实验,发现如果慢慢下拉了n次,路径点上的信息就会加载出来。

  等待几秒再刷新,也可以完整加载(上述现象的原因可能仅仅是这个。。。)

转载于:https://www.cnblogs.com/dgutfly/p/7219210.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值