推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的网络爬虫技术

更新时间:2019-12-24 06:52:00 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:python网络爬虫 下载积分:1分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

本文首先介绍了网络爬虫的主要内容,包括网络爬虫的概念、架构和基本流程,紧接着详细分析了基于Python的网络爬虫技术,希望对有关学习者有所帮助。


部分文件列表

文件名 大小
基于Python的网络爬虫技术.pdf 2M

部分页面预览

(完整内容请下载后查看)
技术交流  
ELECTRONICS WORLD  
基于Python的网络爬虫技术  
辽宁师范大学计算机与信息技术学院 陈 乐  
【摘要】本文首先介绍了网络爬虫的主要内容,包括网络爬虫的概念、架构和基本流程,紧接着详细分析了基于Python的网络爬虫技术,希  
望对有关学习者有所帮助。  
【关键词】网络爬虫;Python技术  
列末尾,等待抓取。上面过程是循环往复进行的,直到“待抓取”  
1  引言  
Url队列为空,停止抓取。  
当今时代是大数据的时代,各个领域都离不开数据的支持。快  
3  基于Python的网络爬虫分析  
速搜索数据并且充分利用数据信息,成为了一个巨大的挑战。为了  
解决这些难题,网络爬虫技术应运而生。使用网络爬虫技术可以快  
速提取数据,提高数据检索质量。  
3.1 Python语言的优越性  
1)方便简单,容易上手。Python几乎能在所有的操作系统  
上运行,很容易上手,初学者可以快速适应。  
2Python是一个广泛使用的脚本语言,其自带了urlliburl-  
lib2等爬虫最基本的库,可以抓取Url的内容。[3]  
3Python擅长处理字节流的各种模式,具有很好的开发速  
度。  
2  网络爬虫技术  
2.1 网络爬虫技术的基本概念  
网络爬虫又称网络蜘蛛,或者网络机器人。它是一种按照一定  
的规则,自动地抓取万维网信息的程序或者脚本。[1]换句话来说,  
它可以根据网页的链接地址自动获取网页内容。如果把互联网比做  
一个大蜘蛛网,它里面有许许多多的网页,网络蜘蛛可以获取所有  
网页的内容。  
3.2 Python网络爬虫模块  
3.2.1 Url管理模块  
Url管理模块的作用是管理Url,包括已经被抓取的Url集合和还  
未被抓取的Url集合。Url管理模块可以有效预防重复抓取循环抓取  
的问题。  
2.2 网络爬虫架构  
网络爬虫架构主要由三个部分组成:网络爬虫调度端(负责开  
启网络爬虫主程序);网络爬虫主程序;目标数据(抓取有价值数  
据)。  
Python中实现网址管理有三种途径:  
1)存储在内存中,针对于Url数据较少的情况。在Python中  
Set()集合加以实现,Set()可以消除重复数据,避免重复抓  
取的问题。  
网络爬虫主程序分为3个部分:  
1Url管理器:管理Url,包括已经爬取过的Url和待爬的  
Url。  
2存储在关系数据库,实现永久存储。建立Url表,该表中有  
两个字段,一个字段是Url地址,另一个字段用来表示Url是否被抓取。  
3)存储在缓存数据库redis中,针对于Url数据较多的情况  
下。也可以用Set()集合来实现,来存取“待爬”的Url地址和  
“已爬”的Url地址。  
2)网页下载器:根据Url地址,将网页下载保存到本地,存  
储为字符串。  
3)网页解析器:将存储的字符串中有价值的数据进行解  
析。  
3.2.2 网页下载器  
2.3 网络爬虫架构流程  
网页下载器将Url对应的网页下载到本地,将其存储为字符  
串,以便接下来对数据进行处理。  
爬虫系统调度段询问Url管理器,从一个Url或者多个Url开始,  
将他们放在“待抓取”的Url队列中,系统按照一定的顺序从队列  
中取出Url地址,将其传送给网页下载器并下载网页内容,调度端  
接收到网页下载的内容后,将网页内容发送给网页解析器,抓取想  
要的内容。[2]在抓取的过程中,爬虫还会碰到Url,在已经下载的  
Url队列中检查,如果没有被抓取过,确认是新的Url,则放到Url队  
Python支持的网页下载工具有两种:  
Python自身携带的urllib2模块。urllib2针对于简单的网络爬虫,能  
够完成网页下载,提交用户数据,代理访问,客户登录等多种功能。  
下面是简单的网络爬虫代码(以百度为例):  
(下转第165页)  
163  
技术交流  
ELECTRONICS WORLD  
单,实用性较强的优点。  
图5 实验实物图  
参考文献  
图4 软件开发界面  
5  实验结果及总结  
[1]郑娴,姚铭.智能家庭网络的研究现状与发展趋势[J].住宅科  
技,2006.  
当人体靠近时,热释电传感器就会接收到相应的红外信号,  
当拨动震动传感器,在两个传感器的共同作用下,可以看到控制  
相应的继电器得电,控制信号相应的传送到手机端。通过手机  
APP发送开关信号,可看到现场继电器动作,其实验实物图如图5  
所示。最终通过实验验证了设计的可行性。该本设计具有操作简  
[2]薛震南.基于物联网的智能家居研究[D].南京大学,2013.  
作者简介:  
马昭(1990—),男,硕士,主要研究方向:电力电子装置。  
(上接第163页)  
import urllib2  
能强大,更为盛行。BeautifulSoup利用find_all()find()方法来搜索  
节点,find_all()可以查找所有符合查询条件的标签节点,并返回一  
个列表。find()方法查找符合查询条件的第一个标签节点。用这两  
种方法搜索节点,提取有价值信息。  
response.urllib2.urlopen()  
print response.read()  
在这个例子中,我们首先调入urllib2库中的url.open()方法,传  
送百度的url,返回一个response对象,调入response对象的read()方  
法,返回获取的网页内容,并打印.。  
4  结语  
第三方工具包—requestrequest的功能比较强大,属于第三方  
插件。  
在大数据时代,网络爬虫技术可以有效准确地抓取目标数据,  
可以为我们节省大量的资源,对信息检索起着十分重要的作用。基于  
Python的网络爬虫技术,具有很高的前瞻性,有一定的研究价值。  
3.2.3 网页解析器  
网页解析器用来从网页中提取从最初想要的数据。实则上提取  
的是两部分:(1Url列表;(2)目标数据。  
Python中的网页解析器有两种类型:  
参考文献  
1利用正则表达式。正则表达式将网页当作字符串来处理,  
只适用于简单的网页。一般网页较为复杂时,不采用此类方法。  
2)基于网页的DOM结构。DOM树是一种树形标签结构。网  
页解析器会将HTML文档当成DOM树,对其进行上下级结构的遍历  
来提取有用信息。使用树形结构可以对网页中的具体信息来进行定  
位,定位到具体的某个节点、属性等。其中BeautifulSoup解析器功  
[1]爬虫学习之一个简单的网络爬虫[OL].https://www.cnblogs.  
com/chenkun/p/5653459.html.  
[2]Mark Lutz.Learning Python[M].北京:机械工业出版总社,2009.  
[3]钱程,阳小兰,朱福喜.基于Python的网络爬虫技术[J].黑龙江科  
技信息,2016(36).  
165  

全部评论(0)

暂无评论