用python爬取天猫商城手机相关信息

2018-02-27 11:24:09来源:https://www.jianshu.com/p/bb727456032f作者:python教程人点击

分享


准备换手机了,但是在网站看很麻烦,一页一页翻还得忍受广告的轰炸,还好我们有爬虫!





话不多说,先上干货:

话不多说,先上干货:

1、        环境: python3

2、       模块:requests、time、random、lxml#pip安装即可,安装不了的可以尝试下载whl文件,不知道怎么下载的可以留言

3、        url:https://list.tmall.com/search_product.htm?q=%E6%89%8B%E6%9C%BA

               #q=后面的内容是”手机”的url编码

4、         思路:用xpath获取每个产品的div盒子,然后在取里面信息





        然后在获取网页page信息,做循环遍历,总的来说不是很难

5、      难点:第一个就是cookie,在写这个代码的时候我重新登录以及中途验证了N次,不得不说,反爬做的不错。记得cookie的获取要在登录后获取,中间加入time.sleep()函数。第二点就是保存到文件了,开始我保存到txt文本了,但是非常难看,而且还想用排序等等功能对所有信息整理,最后选择保存到csv,这样就很简单了。最后一个难点就是内容的获取,我这里一共要获取7个内容,但是在爬取过程中,总有一些是无法获取的,也没有在逐一分析,干脆就用try跳过了,这个地方标记下,以后可以尝试重新写下!

6、      拓展:url中好多内容都是无用信息,起码在本次爬虫过程中无用,可以尝试写查询版的爬虫,直接查询分类然后爬取内容。网站反爬很严重的话,可以尝试加入代理ip池和cookie池,应该会避免频繁输入验证码的问题,有空试试!

7、      PS:淘宝本身有api接入我知道的,写这个爬虫呢,主要是练手,并不是就想获取什么什么信息,所以就无视了,介意勿喷!另外提醒大家一点:爬什么信息都可以,但是切记不要传播,有风险哦!

大概就这些,好了,我们来写代码吧!







因为网站对cookie要求很高,就用了requests. Session()方法!







只要不踢出,代码很简单的,中间陆陆续续出现了几次需要输入验证码,如果持续获取不了数据,可以去网页刷新下看看





输入验证码就可以了

获取翻页page,在浏览器中打开审查元素,这里我用的是火狐!,然后查找页码所在标签










再来分析下url规律,

第1页url:https://list.tmall.com/search_product.htm?q=%E6%89%8B%E6%9C%BA&smToken=567119cb16624286ae258323335af0f9&smSign=5ckOhkLY8%2B0QqXxrBmbpDA%3D%3D

第2页url:https://list.tmall.com/search_product.htm?spm=a220m.1000858.0.0.56662a68UZZywz&s=60&q=%CA%D6%BB%FA&sort=s&style=g&type=pc#J_Filter

第3页url:

https://list.tmall.com/search_product.htm?spm=a220m.1000858.0.0.35602a68OJqmxO&s=120&q=%CA%D6%BB%FA&sort=s&style=g&type=pc#J_Filter

这里要注意第一页和后面的页码的页面url是不一样的,这点在for循环里面用if标记下就可以,然后分析发现,其实url里面的其他内容都可以不要一样可以访问,所以精简下就可以:

第1页url:https://list.tmall.com/search_product.htm?q=%E6%89%8B%E6%9C%BA

第2页url:

https://list.tmall.com/search_product.htm?

s=60&q=%CA%D6%BB%FA

第3页url:

https://list.tmall.com/search_product.htm?

s=120&q=%CA%D6%BB%FA







然后我们在找产品的标签,方法和上面一样,都是在审查元素里面,先找到整个div盒子










这是我抓取内容的xpath代码,注意的是有的属性中是有空格的。。。(大坑)!!!

然后是抓取的店铺名字有的带/n也要替换掉……(第二个大坑)!!!

新建空列表,然后把抓取的内容保存到列表中,写到循环下因为每页保存一次,第二页的时候,直接清空列表如此循环:








注意时间参数,不加很容易就被踢,最后保存到csv,大功告成!!!

剩下的就是各种对比,最后选出适合自己的手机了!







最后说一句:iPhone X真心很漂(chou)亮(bao),我们还是买华为mate10吧

看在写这么多的份上,给个赞呗!( ̄ε  ̄)








最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台