Python3 实现淘女郎照片爬虫

Python3 实现淘女郎照片爬虫

项目简介:本实验通过使用 Python 实现一个淘宝女郎图片收集爬虫,学习并实践 BeautifulSoup、Selenium Webdriver 及正则表达式等知识。

一、实验说明

1.1 实验介绍

本项目通过使用 Python 实现一个淘女郎图片收集爬虫,学习并实践 BeautifulSoup、Selenium Webdriver 及正则表达式等知识。在项目开发过程中采用瀑布流开发模型。

1.2 知识点

本项目中将会学习并实践以下知识点:

  1. Python3 编程
  2. 使用 BeautifulSoup 解析 HTML 页面
  3. 使用 Selenium Webdriver 爬取 Web 页面
  4. 使用正则表达式提取所需的关键信息

1.3 实验效果

首先我们要爬取的目标页面如下:

Python3 实现淘女郎照片爬虫

爬取后的目录结构如下:

Python3 实现淘女郎照片爬虫

每个目录中都有一系列的图片:

Python3 实现淘女郎照片爬虫

二、基础工具

本节主要介绍和安装项目中将用到的几个基础工具。本实验使用实验楼的环境开发,中间部分步骤在不同版本的 Linux 环境下会有不同。

2.1 安装 pip3

首先,由于使用的工具都需要通过 pip3 进行安装,实验楼的环境中没有安装 pip3,所以需要先将pip3准备好。

打开桌面上的 Xfce 终端,输入下面的命令安装 pip3:

sudo apt-get update
sudo apt-get install python3-pip

2.2 安装 BeatifulSoup

简介

BeautifulSoup 库的名字取自刘易斯·卡罗尔在《爱丽丝梦游仙境》里的同名歌词。就像故事中他在仙境中的说法一样,BeautifulSoup 试图化平淡为神奇。它通过定位 HTML 标签来去格式化和组织复杂的网络信息,用简单易用的 Python 对象为我们展现 XML 结构信息。

安装

由于这次实验是在 python3.X 版本以上的所以,将拓展库安装到特定的库中使用 pip3,从而安装到 python3 的系统目录中,仍然是在实验楼中的 Xfce 终端执行命令:

sudo pip3 install Beautifulsoup4

BeautifulSoup4 是现今的最新版本,也是接下来重点使用的工具。

2.3 Selenium

简介

Selenium 是一个强大的网络数据采集工具,最初是为网站自动化测试而开发的。近几年,他还被广泛用于获取精确的网站快照,因为他们可以直接运行在浏览器上。Selenium 可以让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作上是否发生。

Selenium 自己不带浏览器,它需要与第三方浏览器结合在一起使用。例如,可以在实验楼桌面上的 Firefox 浏览器上运行Selenium,可以直接看到一个 FireFox 窗口被打开,进入网站,然后执行你在代码中设置的动作。虽然使用 Firefox 浏览器看起来更清楚,但在本实验中我们采用 PhantomJS来代替真实的浏览器结合使用。

安装

可以通过 PyPI网站 下载Selenium库,也可以通过第三方管理器(像 pip3 )用命令行下载安装:

sudo pip3 install selenium

测试是否都安装成功:

Python3 实现淘女郎照片爬虫

2.4 PhantomJS

简介

一个 无头 的浏览器,PhantomJS 会把网站加载到内存并执行页面上的 JavaScript,但是不会向用户展示网页的图形化界面,可以用来处理 cookieJavaScriptheader 信息,以及任何你需要浏览器协助完成的事情。

安装

PhantomJS 也可以从他的 官方网站下载。因为 PhantomJS 是一个功能完善的浏览器,并非一个 Python 库,所以他不需要像Python 的其他库一样安装,也不能用 pip 安装。

实验楼的环境是 Ubuntu,可以通过 apt-get 进行安装:

sudo apt-get install phantomjs

Python3 实现淘女郎照片爬虫

2.5 Ajax 信息加载

现在有很多页面都是采用 Ajax 加载数据,我们即将实验的目标网址也是这样的,如果我们用传统的方法采集样的页面,只能获取加载前的页面,而我们真正需要的信息( Ajax 执行之后的页面)却抓不到,后续实验中可以看到效果的区别。

三、项目实现

本项目的详细教程、完整代码及demo测试,可在实验楼中查看并在线完成。
更多Python经典项目:Python全部-课程

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/57311.html

(0)
上一篇 2021年8月9日
下一篇 2021年8月9日

相关推荐

发表回复

登录后才能评论