基于python的网络爬虫简单实现论文_王雪晴

基于python的网络爬虫简单实现论文_王雪晴

摘要:随着互联网的飞速发展,网络上的信息呈爆炸式的增长趋势,为了采集网站上的有用的信息如文本、图片、视频等,可以使用网络爬虫技术从网站上进行爬取。首先主要介绍网络爬虫的基本概念,选择python语言的原因以及如何使用python3中的urllib库实现一个简单的网络爬虫,获取所需的信息。最后对网络爬虫技术的未来前景进行展望。

关键字:python 网络爬虫 urllib库

一、网络爬虫

1.1网络爬虫的基本概念

网络爬虫(Web crawler)又叫做网络蜘蛛,是一个自动访问万维网获取所需要信息的程序。网络爬虫技术指的是用爬虫软件对web页面进行请求,并且获取Web服务器的响应的过程。通过网络爬虫技术可以自动采集到所需的信息,并将其保存下来,有利于进行下一步的数据分析。这种技术被广泛应用于搜索引擎或者一些新闻网站等,将爬取到的数据进行一定的处理,使得用户可以很方便、快捷地获取所需要的信息。

1.2网络爬虫的原理

网络爬虫技术的实现离不开URL(Uniformed Resource Location,通用资源适配符)。URL是用来唯一标识万维网上的文档,通过它来指示资源的位置,从而能够找到并获取资源。

URL的格式是<协议>://<域名>:<端口号>/路径。协议字段中常用的是HTTP。HTTP规定了客户进程与服务器进程进行通信的方式和规则。在网络爬虫技术中,客户端进程指的是爬虫程序,爬虫程序发送HTTP请求报文给WEB服务器,服务器对收到的报文进行响应,给客户端回送HTTP响应报文。域名是指存放资源的主机名或者服务器的名称,通过DNS(Domain Name System,域名系统)可以获得域名到IP地址的映射,从而获得WEB服务器的IP地址,通过底层的网络就能够到达目的服务器,实现通信过程。端口号是用来区分不同的应用进程(HTTP默认端口号是80),而路径是指目的资源在服务器中的具体路径,可以准确地对目的资源进行定位。通过以上对URL的解读,可以了解到网络上的资源都是被URL地址所定位的。

网络爬虫技术的实现是离不开URL的,它的基本工作原理是将一些感兴趣的URL设为初始URL进行爬取(发起HTTP请求报文),下载获得网页,对得到的内容进行分析匹配,获得有用的信息,如数据、文本、图片等。同时可以从获得的网页中提取新的URL,对这些新的URL进行分析过滤,将感兴趣的URL放入初始URL中,再执行上面的操作,这是一个循环往复的过程,直至遇到结束条件停止。最后将爬取到的数据进行处理、分析、挖掘,可以从中提取到所需要的有用的信息,并且可以进行数据可视化处理,将数据更直观的展现在人们眼前。利用网络爬虫技术可以自动获取所需要的万维网文档,能够自动收集所需的数据,在信息大爆炸的今天,网络爬虫起着举足轻重的作用。

二、python语言

2.1python语言基本概述

Python是一种面向对象的、解释型程序设计语言,它拥有强大和丰富的库支撑,有很多现成的模块、函数、类可以直接进行调用。正是因为它有丰富的库支撑,使它具有语言简洁、简单易学的优点。除此之外,Python还是一门严谨的、极具可读性和通用性的程序设计语言,它可以让用户编写出更易读、易维护的代码。Python的设计哲学是“简单”、“明确”,“优雅”。它的宗旨是面对一个特定的问题,选择一种行之有效的方法进行解决。而不像perl语言推崇的“解决问题的方法有多个”,这种过于强调灵活性会导致大型项目维护起来很困难,会耗费大量时间。

2.2Python的版本及优点

Python有两个不同版本,分别为Python2和Python3。这两个版本有些地方是很类似的,但它们之间并不是完全兼容的,因为有些部分发生了彻底性地变化。Python2发布于2000年年底,是较早的版本。Python2.7是Python2.x系列的最后一个版本,它将在2020年以后失去支持。而Python3则是Python的未来,正在开发中的语言版本。因此在本文中介绍的是使用Python3版本简单实现网络爬虫。

下面来谈一下在网络爬虫中使用Python来实现的优点:1)抓取网页实现简单、代码简洁,写出的代码具有易读性;2)可以使用功能强大的正则表达式,对获得到的网页进行匹配分析,找出所需要的信息,如文本、图片、数据等;3)功能强大的爬虫框架scrapy。scrapy是一个快速、高层次的WEB抓取框架用于抓取WEB站点并从页面中提取结构化数据,可以供人们按照需求修改框架,具有简单轻巧、十分方便的优点。

期刊文章分类查询,尽在期刊图书馆

三、基于Python的网络爬虫的简单实现

3.1urllib库的简介

本文中主要使用的是Python3中的urllib库来简单实现网络爬虫功能。在此之前,需要先对urllib进行简要介绍:urllib是由几个模块组成的一个包,它的工作过程离不开前面提到过的URL。urllib中包含四个模块分别是:

a)urllib.request模块。用来发送请求和获取响应。

b)urllib.error模块。它包含了urllib.request产生的异常。

c)urllib.parse模块。用来解析和处理URL。

d)urllib.robotparser模块。用来解析robots.txt文件。

在这四个模块中,urllib.request模块提供了最基本的构造HTTP请求的方法,利用它可以模拟浏览器的一个请求发起过程,同时它还带有处理授权验证、重定向、cookies以及其他内容。正是由于python自身带有的强大而丰富的库,使得python语言具有简单易学的特性。urllib.error模块是用来处理urllib.request产生的异常,例如当试图打开一个不存在的网页时,就会产生URLError这个异常。这时就可以使用urllib.error这个模块处理异常。

在介绍urllib.robotparse模块之前我们需要了解robots协议的基本概念。Robots协议又被叫做爬虫协议、机器人协议,它的全名叫做网络爬虫排除标准,它通常是一个放在网站的根目录下的叫做robots.txt的文本文件,用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可抓。当一个爬虫访问一个站点时,它首先会检查这个站点根目录下存放的robots.txt文件,如果存在,就对文件进行分析,按照文件中给定的爬取范围进行爬取。否则,爬虫会访问所有可以直接访问的页面。而urllib.robotparse模块就是用来解析robots.txt文件的。

3.2网络爬虫的简单实现

下面使用urllib.request模块构造http请求,以python官网为例,将网页抓取下来,要抓取网页的URL为 https://www.python.org。代码如下所示:

import urllib.request

response=urllib.request.urlopen('https://www.python.org')

print(response.read().decode('utf-8'))

通过上面的三行代码就可以实现对python官网页面的抓取,获取其源码。上面的代码只是简单的实现了对网页的抓取,由于有的网站设有反爬虫措施,有的时候还需要对爬虫程序做适当的伪装,使它伪装成浏览器,使网站以为这是正常的用户对其进行访问。最常用的方法是修改用户代理(User-Agent)的值来伪装浏览器,默认的用户代理是Python-urllib,若要伪装成火狐浏览器可以将它设置为火狐浏览器的参数。当完成对目标网页获取以后,可以使用正则表达式,或者BeautifulSoup等解析工具,对目标网页进行解析、匹配、定位、提取所需要的内容。并将所需的内容存入数据库,以便进行数据分析、挖掘。

结束语:

在信息爆炸的时代,网络爬虫在采集数据方面发挥着不可替代的作用。Python语言简单易学,有丰富而强大的库支撑,对于网络爬虫的入门者而言是不二选择。在大数据时代,网络爬虫更是发挥了其优势,起着重要的作用。总而言之,网络爬虫技术值得人们进行深入研究。

参考文献:

[1]谢克武.大数据环境下基于python的网络爬虫技术[J].电子制作.2017,(10).

[2]徐远超等.基于Web的网络爬虫的设计与实现[J].微计算机信息. 2007(21).

[3]周中华等.基于Python的新浪微博数据爬虫[J].计算机应用.2014,34(11).

论文作者:王雪晴

论文发表刊物:《科技中国》2017年7期

论文发表时间:2017/11/1

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于python的网络爬虫简单实现论文_王雪晴
下载Doc文档

猜你喜欢