龙空技术网

价值20K项目分享,Python实现具有极高商业价值的淘宝爬虫!

菜鸟带你学编程 800

前言:

今天兄弟们对“python爬虫淘宝价格”大致比较珍视,大家都想要分析一些“python爬虫淘宝价格”的相关文章。那么小编同时在网摘上收集了一些有关“python爬虫淘宝价格””的相关文章,希望看官们能喜欢,姐妹们快快来了解一下吧!

对于淘宝这种页面,最方便快捷的抓取方法就是通过Selenium。本节中,我们就用Selenium来模拟浏览器操作,抓取淘宝的商品信息,并将结果保存到MongoDB。

1. 本节目标

本节中,我们要利用Selenium抓取淘宝商品并用pyquery解析得到商品的图片、名称、价格、购买人数、店铺名称和店铺所在地信息,并将其保存到MongoDB。

2. 准备工作

本节中,我们首先以Chrome为例来讲解Selenium的用法。在开始之前,请确保已经正确安装好Chrome浏览器并配置好了ChromeDriver;另外,还需要正确安装Python的Selenium库;最后,还对接了PhantomJS和Firefox,请确保安装好PhantomJS和Firefox并配置好了GeckoDriver。如果环境没有配置好,可参考第1章。

3. 接口分析

首先,我们来看下淘宝的接口,看看它比一般Ajax多了怎样的内容。

打开淘宝页面,搜索商品,比如iPad,此时打开开发者工具,截获Ajax请求,我们可以发现获取商品列表的接口,如图7-19所示。

image

图7-19 列表接口

私信小编007即可获取数十套PDF以及大量的学习教程哦!希望你早日入门呢!

它的链接包含了几个GET参数,如果要想构造Ajax链接,直接请求再好不过了,它的返回内容是JSON格式,如图7-20所示。

image

image

4. 页面分析

本节的目标是爬取商品信息。图7-21是一个商品条目,其中包含商品的基本信息,包括商品图片、名称、价格、购买人数、店铺名称和店铺所在地,我们要做的就是将这些信息都抓取下来。

image

image

image

image

image

image

当我们成功加载出某一页商品列表时,利用Selenium即可获取页面源代码,然后再用相应的解析库解析即可。这里我们选用pyquery进行解析。下面我们用代码来实现整个抓取过程。

5. 获取商品列表

image

然后,就需要用Selenium进行抓取了。我们实现如下抓取列表页的方法:

image

image

image

image

image

image

image

image

6. 解析商品列表

接下来,我们就可以实现get_products()方法来解析商品列表了。这里我们直接获取页面源代码,然后用pyquery进行解析,实现如下:

image

image

比如,查看一下商品信息的源码,如图7-26所示。

image

图7-26 商品信息源码

image

image

7. 保存到MongoDB

接下来,我们将商品信息保存到MongoDB,实现代码如下:

image

image

8. 遍历每页

刚才我们所定义的get_index()方法需要接收参数page,page代表页码。这里我们实现页码遍历即可,代码如下:

image

image

9. 运行

运行代码,可以发现首先会弹出一个Chrome浏览器,然后会访问淘宝页面,接着控制台便会输出相应的提取结果,如图7-27所示。

image

image

图7-27 运行结果

image

image

图7-28 保存结果

10. Chrome Headless模式

从Chrome 59版本开始,已经开始支持Headless模式,也就是无界面模式,这样爬取的时候就不会弹出浏览器了。如果要使用此模式,请把Chrome升级到59版本及以上。启用Headless模式的方式如下:

image

image

11. 对接Firefox

要对接Firefox浏览器,非常简单,只需要更改一处即可:

image

12. 对接PhantomJS

如果不想使用Chrome的Headless模式,还可以使用PhantomJS(它是一个无界面浏览器)来抓取。抓取时,同样不会弹出窗口,还是只需要将WebDriver的声明修改一下即可:

image

标签: #python爬虫淘宝价格