通过python非常简单的实现一个功能强大的爬虫

发布时间:2019-09-17  栏目:科技中心  评论:0 Comments

前言

这是一篇写给想学习python,而又下不了决心的零基础的小白们的。如果你是业内人士,或者你是python大牛,那么看到这篇文章请一笑而过!学习python的重要性我这里就不赘述了。本文主要是通过python简单的来实现一个功能强大的爬虫。让零基础的小白们体会python的强大,和简单,主要是简单!那么言归正传,我们进入正题。

相信大家在刚开始学习爬虫的时候都是用requests,BeautifulSoup这两种简单,基础的爬虫方式吧,这两种是非常符合我们刚入门的小伙伴学习的,因为简单易懂,容易我们消化,下面来了介绍一下用selenium利用浏览器来进行爬虫学习

首先我们需要了解什么是爬虫。爬虫,或者说叫网络爬虫。百度百科的定义是:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。对于小白来说,晦涩难懂!那么下面会用用通俗的话来解释网络爬虫。

导入第三方库

我们生活在一个网络的世界!生活在一个信息爆炸的时代!网络上充斥着大量的信息,文章,图片,视频……打开一个网站,首先需要打开浏览器,然后在地址栏输入想要打开网站的网址。打开后看到感兴趣的图片,文章,视频等信息,我们想下载下来,怎么操作呢?图片右键,另存为、文章复制粘贴等等。如果一个页面上有几十个图片都要下载,有几十上百个页面怎么办呢?一个一个的另存为?那就太慢了,我们可以写一个程序来做这个事。那么这个程序就叫做网络爬虫。那么再重新定通俗的定义网络爬虫:网络爬虫就是访问互联网上的页面(资源),根据一定的规则,获取我们想要的信息!再通俗一点:网络爬虫就是通过模拟浏览器打开网页,将我们需要的文字,图片,视频等信息自动的下载下来!

美高梅娱乐场网站 1

所以如果要写一个爬虫,就必须懂得浏览器是如何运作的。通过谷歌浏览器来了解打开百度首页,看看发生了些什么?首先打开谷歌浏览器,并且按f12打开开发者工具如下图:

打开浏览器

美高梅娱乐场网站 2

美高梅娱乐场网站 3

选中红色方框选中的Network选项,这个是监控浏览器发送的http请求信息。在地址的栏输入http://www.baidu.com回车。会发现左下角出现了很多条请求数据,选中第一条,如下图:

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习python或者有兴趣学习python的伙伴可以私信回复小编“学习”
获取资料,一起学习

美高梅娱乐场网站 4

抓取索引页

右边的信息就是这次请求的详细信息。浏览器打开一个网址时,就是向这个网址所指向的服务器发送了一个http请求!那么当通过爬虫爬去某个网站的信息时,可以通过浏览器先打开这个网站,分析http请求,然后通过程序来模拟这个过程。

美高梅娱乐场网站 5

我们来实现一个下载美女图片的爬虫。学习编程是个枯燥的过程,我们来点不枯燥的内容!我们选择校花网作为对象,首先打开校花网,选择大学校花这个栏目,网址是:http://www.xiaohuar.com/hua/。通过谷歌浏览器来分析下这个页面的http请求。

提取数据

美高梅娱乐场网站 6

美高梅娱乐场网站 7

发现这是一个get请求。下面通过程序来模拟打开这个页面。本文涉及到的代码都是在python3.6.1环境中运行的。

保存至文件夹

在python3中有一个内置的模块:urllib通过它可以发送http请求。代码如下:

美高梅娱乐场网站 8

美高梅娱乐场网站 9

遍历执行

运行这段代码看看结果:

美高梅娱乐场网站 10

美高梅娱乐场网站,urllib.error.HTTPError: HTTP Error 403: Forbidden

运行结果

发现报了403的错误,403报错是因为,服务器为了避免被恶意请求信息,做的一个反爬机制。要解决这个问题,需要将爬虫伪装成浏览器。在请求头信息里面,有一个信息

美高梅娱乐场网站 11

User-Agent,这个信息就相当于一个电话号码一样,需要在请求信息里加上,那么服务器就知道这次请求是谁了。怎么加上这个信息呢?讲代码稍作修改。

美高梅娱乐场网站 12

美高梅娱乐场网站 13

封装一个请求头,讲爬虫伪装成浏览器!再运行!

结果:

得到了一个HTTPResponse对象,可以通过read函数取出里面的内容!

留下评论

网站地图xml地图