来说说我用python爬取淘宝数据遇见的坑

学习python 一年了,总想着找个大网站来练练手,于是乎,我就把眼光放在了马云爸爸的知名大网站——淘宝。可能也是我自己作死的关系,导致淘宝不让我访问了,不但出现滑块验证码,验证码即使通过了也依然不让我访问,莫名想哭怎么办 ,呜哇~~~

下面就来讲讲我爬淘宝遇到的坑们

一、首先打开了淘宝,想爬商品的基本信息,但是不想爬详情页,就想着在搜索页找找看能不能爬,然后还真的有诶,火狐浏览器查看元素 ,刷新一下,就能找到一个json类型的响应,但是打开请求网址 ,却显示这个

然后看看原始数据,好吧,确实不是正确的json格式的数据,那我试着请求请求,看能不能得到里面的信息,结果显而易见,当然不行,不行怎么办呢,当时我看到了JSONP这个东西

然后就在想JSONP是个什么 ,还有回调是个啥,此时就得靠我们的好老师——百度啦,然后度老师是这么解释的 :

Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

我在想这样是不是和js渲染有关呢?可是那么多js文件到底是哪个呢?怪我自己才疏学浅,到这我就进行不下去了,然而我发现并不是这个问题阻挡了我,而是API,原来我发现的这个请求网址是这个样子滴

https://h5api.m.taobao.com/h5/mtop.alimama.union.sem.landing.pc.items/1.0/?jsv=2.4.0&appKey=12574478&t=1539951370299&sign=e8a8615b376cc737f9545e5cee69c25b&api=mtop.alimama.union.sem.landing.pc.items&v=1.0&AntiCreep=true&dataType=jsonp&type=jsonp&ecode=0&callback=mtopjsonp1&data={%22keyword%22:%22%E6%B0%B4%E6%9D%AF%22,%22ppath%22:%22%22,%22loc%22:%22%22,%22minPrice%22:%22%22,%22maxPrice%22:%22%22,%22ismall%22:%22%22,%22ship%22:%22%22,%22itemAssurance%22:%22%22,%22exchange7%22:%22%22,%22custAssurance%22:%22%22,%22b%22:%22%22,%22clk1%22:%2266d2d77c1852b02e17f02795c3864bdb%22,%22pvoff%22:%22%22,%22pageSize%22:%22100%22,%22page%22:%220%22,%22elemtid%22:%221%22,%22refpid%22:%22mm_26632258_3504122_32538762%22,%22pid%22:%22430673_1006%22,%22featureNames%22:%22spGoldMedal,dsrDescribe,dsrDescribeGap,dsrService,dsrServiceGap,dsrDeliver,%20dsrDeliverGap%22,%22ac%22:%22XxAhFH83H0kCATwIBPIZ9PXU%22,%22wangwangid%22:%22%22,%22catId%22:%22%22}

来,我们看看参数,时间戳都是小意思啦,可是看到appkey,顿时感觉这条路可能真的走不通了,要调用淘宝的API,我要到哪里去找到淘宝的API呢,像马云爸爸开的大公司,数据就是金钱 ,怎么会这样白白流出,不过可能会有试用???我也不知道,打算以后学学js渲染和API接口,好啦,淘宝还是要接着爬。

二、然后我接着爬,就去看看别人是怎么做的,看来好多人都爬过淘宝啊,接着我发现一个让我觉得自己很智障的事情,查看网页源代码发现我想要的信息源码里就有,在一个script 标签里叫做g_page_config的一个字典里,啊啊啊啊啊啊,真的是,好久没打开过源代码了,总是查看元素,所以最基本的就忘记了,真的是很智障啊!!!!!

那这下子就简单了,直接请求网页源代码就行了,可能我还是太天真。。。。。。。

来先看看url:

第一页:https://s.taobao.com/search?initiative_id=staobaoz_20181019&q=%E6%B0%B4%E6%9D%AF&suggest=0_1&_input_charset=utf-8&wq=shuibei&suggest_query=shuibei&source=suggest

第二页:https://s.taobao.com/search?initiative_id=staobaoz_20181019&q=%E6%B0%B4%E6%9D%AF&suggest=0_1&_input_charset=utf-8&wq=shuibei&suggest_query=shuibei&source=suggest&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=44

第三页:https://s.taobao.com/search?initiative_id=staobaoz_20181019&q=%E6%B0%B4%E6%9D%AF&suggest=0_1&_input_charset=utf-8&wq=shuibei&suggest_query=shuibei&source=suggest&bcoffset=0&ntoffset=6&p4ppushleft=1%2C48&s=88

参数里的q是搜索商品的名称,initiative_id是固定的staobaoz_加上当日日期,wq和suggest_query都是拼音,s是页数,bcoffset和ntoffset我没搞清楚,但是没它俩好像无伤大雅,剩下的都是固定的。用request来请求网页源代码,得到之后用正则或者BS4都行,反正理论上都能匹配出来,为什么我说理论上呢,是因为我请求得到的源代码里就没有上面提到的有g_page_config的script标签,一开始能的到,也能匹配出来商品信息,可是后来再也没有出现过,我在想,是不是我访问淘宝次数太过频繁,所以被禁了,嗯 ,很有可能。

三、人生苦短,我学python,爬虫的学习之路上怎能容许我说放弃呢,我就换了个浏览器,依然是一里面的方法,这次是找到了完全的json格式的数据,就是把,参数有点麻烦,现在我的IP访问淘宝有些不顺利了,代码里有的url是这个样子滴

url = "https://s.taobao.com/api?_ksTS={}&callback={}&ajax=true&m=customized&stats_click=search_radio_all:1&q=花盆&s=36&imgfile=&bcoffset=0&js=1&ie=utf8&rn={}".format(ksts_str,callback_str , rn)

参数虽然麻烦点,但是网上大神多啊,这三个参数可以以以下方式得到(这三个以让我想到了撒老师的段子O(∩_∩)O哈哈~)

keyword="手表"
k="shoubiao"
t = time.localtime()
initiative_id=("staobaoz_%s%02d%02d") % (t[0], t[1], t[2])
time_stamp = int(round(time.time()*1000))
ii=str(time_stamp)[-3:]
ran_num = random.randint(100,3000)
ksts_str = str(time_stamp) + '_' +ii
callback_str = 'jsonp' + str(int(ii)+1)
rn =md5(ksts_str)
param={
'initiative_id ':initiative_id,
'q':  keyword,
'suggest_query':k,
'wq': k,
}

一开始我访问的的时候url还是是完整的,现在变成这个样子。。。。

哎呦喂,我就想爬个淘宝,学习学习,为什么要如此对我,我可能需要请教大佬,虽然这条爬淘宝之路很坎坷,但是我还不想说放弃,加油!

python爬取淘宝数据遇见的坑相关推荐

  1. 爬虫案例 --- Python 爬取淘宝数据存到数据库

    可以做爬虫的语言有很多,如 PHP.Java.C/C++.Python等等... 1)PHP语言 虽然是世界上最好的语言,但是他天生不是干这个的,而且对多线程.异步支持不够好,并发处理能力很弱.爬虫是 ...

  2. python爬取淘宝数据魔方_淘宝数据魔方技术架构解析

    淘宝网拥有国内最具商业价值的海量数据.截至当前,每天有超过30亿的店铺.商品浏览记录,10亿在线商品数,上千万的成交.收藏和评价数据.如何 从这些数据中挖掘出真正的商业价值,进而帮助淘宝.商家进行企业 ...

  3. python爬取淘宝数据魔方_《淘宝数据魔方技术架构解析》阅读笔记

    淘宝网拥有国内最具商业价值的海量数据.截至当前,每天有超过30亿的店铺.商品浏览记录,10亿在线商品数,上千万的成交.收藏和评价数据.如何从这些数据中挖掘出真正的商业价值,进而帮助淘宝.商家进行企业的 ...

  4. python爬取淘宝数据魔方_淘宝数据魔方技术架构解析阅读心得

    淘宝网拥有国内最具商业价值的海量数据,而帮助消费者进行理性的购物决策,是淘宝数据平台与产品部的使命.为此,我们进行了一系列数据产品的研发,比如为大家所熟知的量子统计.数据魔方和淘宝指数等.本文将以数据 ...

  5. python爬取淘宝全部『螺蛳粉』数据,看看你真的了解螺蛳粉吗?

    01.前言 上一篇文章(爬取淘宝热卖商品并可视化分析,看看大家都喜欢买什么!)爬取分析了淘宝的热卖商品,从分析来看『螺蛳粉』的销量巨高.因此这篇文章将爬取淘宝全部『螺蛳粉』商品数据,通过可视化分析淘宝 ...

  6. python爬淘宝app数据_一篇文章教会你用Python爬取淘宝评论数据(写在记事本)

    [一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. [二.项目准备工作] 准备Pycharm,下载安装等,可以参考这篇文章 ...

  7. Python爬取淘宝女模特信息

    前言 Python爬取淘宝美女信息下载本地并同时存储mysql数据库,存储数据库用到了pymysql模块,sql语句简单好用,直接上代码,源码请点链接Python-Spiders文集. 项目结构: 本 ...

  8. python电商数据挖掘_利用Python爬取淘宝商品并数据挖掘与分析实战!此乃大型项目!...

    项目内容 本案例选择>> 商品类目:沙发: 数量:共100页 4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...

  9. python 爬取淘宝网课

    python爬取淘宝网课,打开web控制台,发现有个链接可以下载到对应的内容,下载的格式是m3u8,用文本打开里面是许多.ts链接,当然百度后得知可以直接下个vlc然后下载,但是还是想用python试 ...

  10. python爬取淘宝商品图片

    python爬取淘宝商品的图片 话不多说,直接上代码: from selenium import webdriver from selenium.webdriver.common import key ...

最新文章

  1. 如何让小程序页面更顺滑_微信小程序|实现界面滑动切换
  2. android p 权限流程,Android native 权限控制流程
  3. 基于USB通信的开关量输入输出板
  4. android opengl es 粒子效果实例代码
  5. 进程与线程的区别?--多线程与线程池
  6. 失眠,很困但是睡不着怎么办?
  7. 剑指offer面试题[5]-从尾到头打印链表
  8. 深度学习-自然语言处理(NLP)-第三方库(工具包):Synonyms【更好的中文近义词、聊天机器人、智能问答工具包】
  9. Krpano vtourskin.xml 默认皮肤详解
  10. 情感分析textblob--英文分析
  11. 一步一步实现中后台管理平台模板-13-解决IE浏览器兼容性问题
  12. 国庆星期日 1949年的国庆节(10月1日)是星期六。 今年(2012)的国庆节是星期一。
  13. K均值(kmeans)分类
  14. python快速实现数字华容道小游戏
  15. UE4 材质学习 (焚烧材质)
  16. Linux:未定义引用`CPU_ZERO‘
  17. 物联网解决方案架构及其流程
  18. 让IE6支持HTML5元素
  19. js进入页面后自动触发点击事件
  20. 关于异或的判断奇数还是偶数的性质。

热门文章

  1. linux删除网卡网卡驱动命令,Linux系统如何查看网卡驱动
  2. 【经验总结—1】:研究僧常用文献搜索网站和下载方法
  3. 批量提取网页中的超链接
  4. React-组件公共逻辑抽离的两种方式
  5. PHP微信小程序用户昵称带表情符存储
  6. vsftpd虚拟账户(虚拟用户,ubuntu16,舍弃虚拟用户配置文件)
  7. 查计算机主板,如何查看计算机主板的型号
  8. 淘宝至强cpu为什么那么便宜
  9. SitePoint播客#67:浏览器之舞
  10. 最新国外虚拟主机对比评论国外虚拟主机购买指南