-
准备换手机了,但是在网站看很麻烦,一页一页翻还得忍受广告的轰炸,还好我们有爬虫!
话不多说,先上干货:
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吧
看在写这么多的份上,给个赞呗!( ̄ε  ̄)
想要源代码的同学可以私信我发送:资料 就可以了!
文章标签: 顶: 0踩: 0本文链接:https://www.lezhuanwang.net/kepu/56568.html『转载请注明出处』
相关文章
- 2023-07-30造梦西游3boss金角大王怎么打(造梦西游3实用小技巧)
- 2023-07-30dnf平民附魔宝珠推荐2023(超实用平民推荐装备)
- 2023-07-29电脑桌面假死怎么解决方法(Windows电脑实用小技巧)
- 2023-07-29手机dwg看图软件有哪些(分享三个实用的图纸查看器)
- 2023-07-29电脑投屏快捷键ctrl加什么(超实用的电脑快捷键)
- 2023-07-28华为手机怎么开启应用分身(华为手机中的5个实用功能)