快乐赚

独家提供实用网址天猫商城(天猫商城手机相关信息盘点)

 人阅读 | 作者舞动奇迹 | 时间:2023-07-03 20:04

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

话不多说,先上干货:

1、 环境: python3

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

3、 url: =后面的内容是"手机"的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,在浏览器中打开审查元素,这里我用的是火狐!,然后查找页码所在标签

直接用name属性找到input标签,然后抓取value标签属性就ok了,注意结果是个列表,需要转成字符串

再来分析下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:

这里要注意第一页和后面的页码的页面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

这样就简单多了,s属性控制翻页效果,一页60个,所以翻页后的s=60的倍数,ok,我们来写循环吧!

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

然后把div折叠起来,就发现,一页60个产品的div盒子整整齐齐的放在那,而我们需要的内容就在这个div里面,这就简单了

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

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

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

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

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

完全代码奉上!

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

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

想要源代码的同学可以私信我发送:资料 就可以了!



文章标签:

本文链接:『转载请注明出处』