logo资料库

基于Python下的爬虫综述及应用.pdf

第1页 / 共1页
资料共1页,全文预览结束
基于 Python 下的爬虫综述及应用 □张誉曜 陈媛媛(通讯作者) 新疆师范大学计算机科学技术学院 【摘要】 本文对 Python 全栈爬虫技术进行阐述,包含了爬虫概念、流程和架构,并通过详细的代码展示体现出来,紧接着通过实 例展现了 Python 爬虫的简洁性,望对学习者有所帮助。 【关键词】 Python 全栈爬虫 爬虫概念 应用 引言:如今,大数据已经进入我们的各个领域,我们的 工作及应用越来越需要获取大量的数据。我们可以想象在一 张蜘蛛网上沿着我们所需的方向爬取猎物(数据)的感觉。 实际上爬虫就是通过人为的模拟浏览器行为,获取站点的 HTML 代码、JSON 数据以及其它相关内容到本地,保存以 便日后自己使用。 一、爬虫技术 1、爬虫简介。爬虫,应该称为网络爬虫,也叫网页蜘蛛、 网络机器人、网络蚂蚁等。其实,搜索引擎,就是网络爬虫 的应用者。但搜索引擎不能对所需网站及特定数据进行获取, 因此,需要自己开发爬虫来解决问题。 2、爬虫分类。当前主要爬虫从大体上可分为聚焦爬虫 和通用爬虫。通用爬虫常见的就是搜索引擎,无差别的收集 数据、存储,提取关键字,构建索引库,给用户提供搜索接 口。聚焦爬虫是指有针对性的编写特定领域数据的爬取程序, 针对某些类别数据采集的爬虫,是面向主题的爬虫。 3、爬虫架构。爬虫架构分为 3 部分:(1)URL 资源管 理器:存放已爬和未爬的 URL。(2)网页下载器:字符串 格式的网页保存方式。(3)网页解释器:进行数据解析。 4、爬虫的一般流程:(1)初始一批 URL,将 URL 放 在待爬取队列。(2)取出 URL,通过 DNS 解析 IP,对 IP 对应站点下载 HTML 页面,保存本地服务器,爬取完成后放 入已爬取队列。(3)分析网页,找出里面 URL 链接,重复(2)。 二、基础 Python 爬虫的分析 2.1Python 语言的优势 (1)简单方便上手,兼容性强,可在所有操作系统 上运行,初学者能很好适应。(2)Python 其自身所带了很 多例如 urllib3 等很方便爬虫的库,以及其完整的爬虫框架 Scrapy,使用者很方便上手。 2.2 Python 网络爬虫模块 1. urllib 包。Urllib 是标准库,它是一个工具包模块,包 含以下模块来处理 URL:(1)urllib.request:用于打开和读 写 URL;(2)urllib.error 包含了由 urllib.request 引起的异常; (3)urllib.parse 用于解析 URL;(4)urllib.robotparser 分析 robots.txt 文 件。 在 Python2 中 提 供 了 urllib 和 urllib2, 其 中 urllib 提供的是底层的接口,urllib2 对 urllib 进行了进一步的 封装。但在 Python3 中将 urllib 合并到了 urllib2 中,并只提 供了标准库 urllib 包。 2. request.urlopen 方法。通过 urllib.request.urlopen 方法, 发起了一个 HTTP 的 GET 请求,WEB 服务器返回了网页内 容。响应的数据被封装到类文件对象中,可以通过 read 方法、 readline 方法、readlines 方法获取数据,status 和 reason 属性 表示返回的状态码,info 方法返回头信息。 3.User-Agent 问题。urlopen 方法只能传递 URL 和 DATA 这样的数据,不能构造 HTTP 的请求,我们使用时 useragent 显示为 Python-urllib/(你的 Python 版本号),有些网站是反 爬虫的,所以要把爬虫伪装成浏览器。下面是简单伪装代码: ua = ‘User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)’ req = Request(url,headers={‘User-agent’:ua}) 4. HTTPS 证书忽略。HTTPS 使用 SSL 安全套接层协议, 在传输层对网络数据进行加密。在我们使用 HTTPS 的时候 需要证书,而证书需要 CA 认证。CA 是数字认证中心的简 称。HTTPS 在访问一些网站时,例如 12306,会显示失败, 其失败的原因在于其网站的证书未通过 CA 认证,它是自己 生成的证书,不可信。在这里,我们可以像浏览器一样,导 入 SSL 模块,忽略证书不安全信息。简单代码如下: import ssl # 忽略不信任的证书 context = ssl._create_unverified_context() res = urlopen(res,context=context) 三、案例:爬取某电影评价网站信息(截取单条数据) 结语:总的说,Python 是一个使用简洁方便,很适合初 学者使用的语言。基于 Python 的网络爬虫可以更加准确的获 取我们所需的目标数据,具有一定的研究价值。 参 考 文 献 [1] 周中华 . 基于 Python 的新浪微博数据爬虫 [J]. 计算机应用 , 2014.34 [2] 许笑 . 广域网分布式 Web 爬虫 [J]. 软件学报 , 2010.21 [3] 冯俐 . 爬虫技术综述 [J]. 电脑知识与技术,2017.27 2017 年度新疆师范大学计算机科学学院数据安全重点实验室招标课题“网络空间命运共同体视域下我国智库网络影响力提升路径研究”, 课题编号 : XJNUSYS102017B07。 通讯作者 : 陈媛媛 ( 1977— ) ,新疆师范大学计算机学院副研究馆员 98 Internet Application互联网+应用
分享到:
收藏