使用Python爬取淘宝两千款套套

在这里插入图片描述 各位同窗们,很久没写原创技术文章了,最近有些忙,因此进度很慢,给你们道个歉。html

警告:本教程仅用做学习交流,请勿用做商业盈利,违者后果自负!如本文有侵犯任何组织集团公司的隐私或利益,请告知联系猪哥删除!!!python

1、淘宝登陆复习

前面咱们已经介绍过了如何使用requests库登陆淘宝,收到了不少同窗的反馈和提问,猪哥感到很欣慰,同时对那些没有及时回复的同窗说声抱歉!ajax

顺便再提一下这个登陆功能,代码是彻底没有问题。若是你登陆出现申请st码失败的错误时候,能够更换_verify_password方法中的全部请求参数。 在这里插入图片描述算法

淘宝登陆2.0改进中咱们增长了cookies序列化的功能,目的就是为了方便爬取淘宝数据,由于若是你同一个ip频繁登陆淘宝的话可能就会触发淘宝的反扒机制chrome

关于淘宝登陆的成功率,在猪哥实际的使用中基本都能成功,若是不成功就按上面的方法更换登陆参数!json

2、淘宝商品信息爬取

这篇文章主要是讲解如何爬取数据,数据的分析放在下一篇。之因此分开是由于爬取淘宝遇到的问题太多,而猪哥又打算详细再详细的为你们讲解如何爬取,因此考虑篇幅及同窗吸取率方面就分两篇讲解吧!宗旨还会不变:让小白也能看得懂cookie

本次爬取是调用淘宝pc端搜索接口,对返回的数据进行提取、而后保存为excel文件!数据结构

看似一个简单的功能却包含了不少问题,咱们来一点一点往下看吧!多线程

3、爬取单页数据

开始写一个爬虫项目咱们都须要量化后再分步,而通常第一步即是先爬取一页试试!app

1.查找加载数据URL

咱们在网页中打开淘宝网,而后登陆,打开chrome的调试窗口,点击network,而后勾选上Preserve log,在搜索框中输入你想要搜索的商品名称 在这里插入图片描述 这是第一页的请求,咱们查看了数据发现:返回的商品信息数据插入到了网页里面,而不是直接返回的纯json数据在这里插入图片描述

2. 是否有返回纯json数据接口?

而后猪哥就好奇有没有返回纯json的数据接口呢?因而我就点了下一页(也就是第二页) 在这里插入图片描述 请求第二页后猪哥发现返回的数据居然是纯json,而后比较两次请求url,找到只返回json数据的参数! 在这里插入图片描述 经过比较咱们发现搜索请求url中若是带ajax=true参数的话就直接返回json数据,那咱们是否是能够直接模拟直接请求json数据!

因此猪哥就直接使用第二页的请求参数去请求数据(也就是直接请求json数据),可是请求第一页就出现错误: 在这里插入图片描述 直接返回一个连接而 不是json数据,这个连接是什么鬼?点一下。。。 在这里插入图片描述 铛铛铛,滑块出现,有同窗会问:**用requests能搞定淘宝滑块吗?**猪哥咨询过几个爬虫大佬,滑块的原理是收集响应时间,拖拽速度,时间,位置,轨迹,重试次数等而后判断是不是人工滑动。并且还常常变算法,因此猪哥选择放弃这条路!

3.使用请求网页接口

因此咱们选择相似第一页(请求url中不带ajax=true参数,返回整个网页形式)的请求接口,而后再把数据提取出来!

在这里插入图片描述 这样咱们就能够爬取到淘宝的网页信息了

4、提取商品属性

爬到网页以后,咱们要作的就是提取数据,这里先从网页提取json数据,而后解析json获取想要的属性。

1.提取网页中商品json数据

既然咱们选择了请求整个网页,咱们就须要了解数据内嵌在网页的哪一个位置,该怎么提取出来。

通过猪哥搜索比较发现,返回网页中的js参数:g_page_config就是咱们要的商品信息,并且也是json数据格式! 在这里插入图片描述 而后咱们写一个正则就能够将数据提取出来了!

goods_match = re.search(r'g_page_config = (.*?)}};', response.text)

2.获取商品价格等信息

要想提取json数据,就要了解返回json数据的结构,咱们能够将数据复制到一些json插件或在线解析 在这里插入图片描述 了解json数据结构以后,咱们就能够写一个方法去提取咱们想要的属性了 在这里插入图片描述

5、保存为excel

操做excel有不少库,网上有人专门针对excel操做库作了对比与测评感兴趣能够看看:https://dwz.cn/M6D8AQnq

猪哥选择使用pandas库来操做excel,缘由是pandas比较操做方便且是比较经常使用数据分析库!

1.安装库

pandas库操做excel实际上是依赖其余的一些库,因此咱们须要安装多个库

pip install xlrd
pip install openpyxl
pip install numpy
pip install pandas

2.保存excel

在这里插入图片描述 这里有点坑的是pandas操做excel没有追加模式,只能先读取数据后使用append追加再写入excel!

查看效果 在这里插入图片描述

6、批量

一次爬取的整个流程(爬取、数据提取、保存)完成以后,咱们就能够批量循环调用了。 在这里插入图片描述 这里设置的超时秒数是猪哥实践出来的,从3s、5s到10s以上,太频繁容易出现验证码! 在这里插入图片描述 猪哥分屡次爬取了两千多条数据 在这里插入图片描述

7、爬取淘宝遇到的问题

爬取淘宝遇到了很是多的问题,这里为你们一一列举:

1.登陆问题

在这里插入图片描述 问题:申请st码失败怎么办? 回答:更换_verify_password方法中的全部请求参数。

参数没问题的话登陆基本都会成功!

2.代理池

为了防止本身的ip被封,猪哥使用了代理池。爬取淘宝须要高质量的ip才能爬取,猪哥试了不少网上免费的ip,基本都不能爬取。 在这里插入图片描述

可是有一个网站的ip很好 站大爷http://ip.zdaye.com/dayProxy.html ,这个网站每小时都会更新一批ip,猪哥试过仍是有不少ip是能够爬取淘宝的。

3.重试机制

为了防止正常请求失败,猪哥在爬取的方法上加上了重试机制! 在这里插入图片描述 须要安装retry库

pip install retry

4.出现滑块

上面那些都没问题,可是仍是会出现滑块,猪哥测试过不少次,有些爬取20次-40次左右最容易出现滑块。 在这里插入图片描述 出现滑块只能等个半小时后继续爬,由于目前还不能使用requests库解决滑块,后面学习selenium等其余框架看看是否能解决!

5.目前这只爬虫

目前这只爬虫并不完善,只能算是半成品,有不少能够改进的地方,好比自动维护ip池功能,多线程分段爬取功能,解决滑块问题等等,后面咱们一块儿来慢慢完善这只爬虫,使他能够成为一只完善懂事的爬虫!

获取源码:关注vx公众号:裸睡的猪,回复:淘宝 获取,快去试试你感兴趣的商品吧!

原文出处:https://www.cnblogs.com/pig66/p/11475455.html

相关文章
相关标签/搜索