小白爬虫系列的文章,顾名思义都是写给小白的,每一篇都是楼主都会选择一个网站进行实战,因为楼主觉得爬虫是一个力气活,只有在实战中才能提高战力啊。好了,话不多说,我们选择的第一个网站是淘宝,当然这次不是大规模抓取,大规模留到进阶篇。首先我们打开淘宝的首页,然后在搜索栏输入文胸(这里只是以文胸为例子,你喜欢写啥就写啥,本人测试无论输入哪种商品都可以),结果如图:
这里都是琳琅满目的文胸,然后楼主去网页的源代码看了看,商品的具体数据是JS动态加载的,不在源代码里面的,那么我们就找嘛,毕竟每页这么多的商品数据,找到这个JS文件也不难,因为淘宝的商品太多了,楼主就简单切换一下页数,果然在切换的时候抓到了这个js请求文件,如图
打开这个文件可以看到都是我们需要的商品数据
抓到这个文件就好办了,我们先分析一下这个请求,如图
这里的URL是超级长,当然我们可以适当调整的,url里面的很多参数去掉也是没有关系的,我们先把这个URL直接复制到浏览器打开,看看结果,如图
在大括号里面的是我们想要的数据,但是明显这里有个jsonp1035这段数字字母阻碍着我们解析里面这段数据,楼主是解析超久这段数据也没有成功啊当时,最好斗胆在网页中把这段字母数字去掉,居然是不妨碍我们访问的,改了之后的URL是这个
https://s.taobao.com/search?data-key=s&data-value=44&ajax=true&_ksTS=1479917597216_854&callback&q=文胸
好了,访问这个网站得到的数据就是干干净净的json数据了,可以直接在Python里面解析了,当然你可以不是文胸,我测试了很多商品都没有问题的。
如下是代码,超级简单的,值得一提的是淘宝的数据隐藏得比较深,不是一个简单的字典,当时楼主不知道json在线解析器折腾了好久,里面商品的数据是在字典几个层次下面的,你要按照key-value一步步提取才可以,如图
data_dict就是那份淘宝数据解析成的字典,要取到后面第四个key,后面的数据才是我们要的商品数据
运行之后,随便输入你想要爬取的商品,然后都会被以csv的格式爬取下来的,里面有价格,交易次数,地点等数据,有兴趣的也可以分析一下哈,总结起来本次实战难点主要有两点:
一、淘宝链接的提取以及修改
二、具体数据的解析以及提取
最后提一下,本篇爬取的是第一页,但是只爬一页明显是满足不了楼主和各位的啊,楼主翻了翻,其实页数是有规律的,如图
页数都是有数字规律的,当然第一篇我们简单爬取就好了,等我下几篇教会了大家如何写简单的代理池,我们再回来大规模爬微信或者京东淘宝这些网站,我们慢慢来。
好了,本篇实战介绍到这里,下次带带大家爬一爬链家某个区域房子的数据,保准学会,超级简单。
原文发布时间为:2017-03-17
本文作者:蜗牛仔
本文来自云栖社区合作伙伴“Python中文社区”,了解相关信息可以关注“Python中文社区”微信公众号