獻据戽技术信■与电圈
China Computer & Communication2020年第24期基于Python的网页数据爬虫设计分析
李传科
(海南软件职业技术学院,海南琼海571400)
摘要:在“互联网+”时代,面对冗杂的数据需要通过构建模型得出准确的结论。基于此,本文首先阐述了网络爬 虫的相关概念,进而分析了网络爬虫的案例,比如根据网页的基本结构对其进行分析,使用不同的分析工具获取更准确 的信息。
关键词:互联网;网络肢虫;数据整理
中图分类号:TP393. 092 文献标识码:A文章编号:1003-9767 (2020) 24-130-03
Design and Analysis of Web Data Crawler Based on Python
LI Chuanke
(Hainan College of Software Technology,Qionghai Hainan571400, China)
Abstract:In the era of^Internet +,?,in the face of the redundant data,we need to build accurate conclusions through building models.Based on this,this paper first expounds the related concepts of web crawler,and then analyzes the cases of web crawler,such as analyzing it according to the basic structure of the web page,using different analysis tools to obtain more accurate information.
Keywords:Internet;web crawler;data sorting
〇引言
随着大数据时代的到来,人们使用网络的频率越来越高,人们在查询资料、观看视频时都需要用到网页,网页中包含 的数据有很多人们看不到的内容。以往人们查不到的信息,现在只需要输人关键词就可以到,搜索引擎成为人们获取 信息的一个工具,能够满足人们的数据需求[1_4]。
网络爬虫是一个自动收集定向网络信息的程序,可以 通过编写程序的方式采集所需要的信息。在收集信息后,要 对这些数据都进行划分整理,并把整理出的数据都存储到电 脑中。本文主要阐述了网络爬虫的相关内容,并把收集到的 信息全部录入相应的数据库中。在进行爬虫设计时,要对 Python的相关内容进行了解,根据Python在爬虫方面的特 点,设计一个完整的框架,保证可以获取有用的内容。为了 解决爬虫程序中的问题,可以采用反爬虫结构保证数据的准 确性。
1网络爬虫概述
1.1Python简介
Python是一个跨平台的计算机程序设计语言,最开始是用来编写自动化脚本,随着不断的发展现在多被用于开发独 立的大型项目。它可以应用在网页开发、人工智能、软件开发、后端开发、网络爬虫等领域,具有简洁性、易读性和可扩展 性,在国外很多人用它来做科学计算研究,用来教授程序 课程。
1.2网络爬虫的原理
在搜索引擎中,网络爬虫是一个重要组成部分,它的主 要作用就是把网络中的网页下载到本地电脑中,可以对相关 的内容进行备份。在传统的爬虫设计中,多是通过获取一个 或若干个初始网页的U R L开始的,在进行抓取时需要对页 面中的U RL进行不断更新,直到满足人们的需求为止。在 整个系统中,重要的组成部分是待抓取U R L队列,因为这 与抓取的具体步骤相关,可以明确抓取的页面情况。在完成 抓取任务后这些页面会被保存到系统中,人们再对其进行相 应的分析和整理,通过建立索引的方式进行后续查询。
网络爬虫的基本工作流程如下:第一,在爬取前选择合 适的URL;第二,把这些URL放人待抓取U R L队列中;第 三,从这些队列中选择合适的URL,在获得IP后把U RL对 应的网页下载到网页库中;第四,通过分析抓取相关队列中
作者简介:李传科(1988—),男,海南万宁人,硕士研宄生,讲师。研宄方向:软件技术、人工智能、L i n u x应用。
2020年第24期
信篇与电H
China Computer & Communication
獻据戽技术
的URL ,分析相关内容,再把它放入待抓取的队列中,如此 循环往复进行下个抓取。1.3网络爬虫的分类
网络爬虫的主要作用就是可以顺着网页追踪人们所需的 数据,根据相关的规则自动抓取网络中的程序或者脚本。随 着网络的快速发展,出现了越来越多的信息,为了进一步提 取有效的信息可以把网页中的相关资源集中在一起。网络爬 虫主要分为4个类型:一是通用网络爬虫,是由初始URL 集 合、U R L 队列、页面爬行模块、页面分析模块、数据库等构 成;二是聚焦网络爬虫,主要应用在特定信息的爬取中,可
以为某一特定的人提供相应的服务;三是增量式网络爬虫, 只爬取内容发生变化的网页或新产生的网页;四是深层网络 爬虫,可以隐藏在表单后,不能通过直接的方式来获取,需 要输入一些关键词后才能获取。
2网络爬虫的案例分析
为了让人们可以更加便利地在网页中查数据,本文主
要运用爬虫方式获取网页中的数据,对收集到的数据进行储 存,从而方便人们对数据进行分析。
2.1爬取流程和运行结果
通过Spyder 可以根据所要查询的内容进人相关网页进行 爬虫,通过该方法对结果进行相应的转换并存储,本文主要 运用两种方式进行爬取,现将鹏取过程和运行结果列出来。 2.1_1结合数据存取方式进行爬取
(1)
注意程序伪装问题。通过浏览器进行请求时,当 程序不能兼容浏览器时,人们便没有办法获取相关内容。所 以,在爬取过程中需要对程序进行伪装。这样在运用request 库时,可以传递相关内容加人指定
的headers 。目前,大部 分网站要想看到详细的内容就需要进行登录,才能获取更 多的内容,所以使用cookie 值时要注意在登录后才会产生 cookie 值 〇
(2)
通过for 循环来翻页。在运用浏览器搜索网页时可 以发现,一页中显示的数据量是有限的,在查看的过程中, 要想查询更多的数据就可以通过翻页来查看。
(3)
通过搜索关键词来查看。在输人不同关键词时可 以发现,仅searchWord 有所改变。关键词的数值是固定不变 的,需要传递到U R L 中,有时会出现错误的情况,所以要 把后面的部分进行单独赋值,把数据都整理后再进行传递, 从而才能保证正常运行。
(4)
搜索页面中获得相应的数据编号,再进人详细页面。 首先,通过研究可以发现,在面对不同信息时,U RL 只有 judgementID =丨丨是有变化的,也就是每个信息在网站上都有 属于自己的ID 。其次,在页面搜索的过程中需要到相应的 ID 。最后,通过format 把ID 传递进U R L 中,这样就可以完 成对搜索页的工作,再进人更加详细的页面中。
(5) 进人详细页面后查看具体的内容。这个页面主要
包括两部分的内容:一是基础信息,二是其他信息。对于不 同的信息来说有不同的小标题,在提取内容时,要对这些小 标题进行判断,当发现有小标题时就需要对内容进行赋值, 反之就把小标题赋为空值,这样可以降低不到小标题的 概率,不会影响爬取整页文书。fullJudgement 下面都是基 础信息,可以对其进行提取存放到相应的列表中。其他信 息是在full J udgement 下面的paragraphs 下面,可以运用相 应的方式把信息提取出来,再把每个小标题放入相应的列 表中。
(6)加强分析与整理。对获取的信息通过列表的方式 进行相应的分析与整理,把它们汇总到Excel 中。为了更好
地对数据的进行分析,可以把爬取的内容放入Excel 中,当
数据比较多的时候,可以把它们放置到MongoDB 中。2.1.2使用selenium 自动获取K 面爬取
第一,进人网页数据库中,通过模式的方式进人网页中。 第二,通过登录的方式进人页面。第三,通过模仿的方式点 击页面,每个步骤都不能少,要不然就会停滞不前,使整个 程序出现异常。第四,在使用webdrive 库的find _element _ by_xpath 和 find _element _by _css_selector 方法,到相应的 位置后进行点击。第五,登录账号。在进入网站时需要登录
才能获取更详细的信息,要根据页面提示进行登录,然后再 进行相应的搜索。第六,在进行登录时,需要输入相应的账 号和密码,再用send _keys 的方法做好输人工作,再次进行 点击才能完成登录工作。第七,输人关键词进行爬取。在进 行这一步骤时,可以通过find _elements _by _css _selector 用法
获取关键词的具体位置,再输人关键词进行搜索。
进入相应的页面后,可以根据关键词获取相应的信息, 这样可以保证在爬取的过程中可以尽可能多获取相关的信 息,最后把收集上来的信息都整合在一起。运用Selenium 方 法进行翻页,在爬取时可以进人详细页面中。步骤都是一样 的,完成一页爬取后再跳转到下一页。首先,进人详细信息
页。点击相关标题进行跳转,运用witch _to _window 方法,
保证可以进入相关页面中。其次,爬取详细信息。在电脑中
到每个部分对应的标签,当它们相同时,才可以通过get _
attribute 到具体的位置。对于小标签来说要进行赋空值, 这样可以提高爬取的效率。再通过find _elements _by _css _
selector 方法,根据所需内容进行爬取,对其进行赋予变量 值。最后,对变量进行集中并放人到列表中,这样方便存人 Excel 中。为了更好地对数据进行相应的处理和分析,把爬
取的内容可以存到Excel 中,对于数据比较多的内容可以存 放到
MongoDB 中。2.2设计过程中遇到的问题
在设计的过程中,主要遇到了两个问题。第一,代码问 题。在运用常规的方法时可能会遇到代码问题,此时便需要 根据内容对其进行修改。第二,在设计代码的过程中,如果 遇到翻页的问题,便无法设置固定数据。为了解决相关问题,
selenium获取cookie獻据專技术信■与田腰
China Computer & Communication2020年第24期
需要把网页中的数据放置到文件中的一个特定位置,再输人 相关的词语才能完成爬取页面的工作。
3结语
随着互联网的不断发展,网络走入千家万户,对企业 的发展产生了很大的影响。企业经营需要用到大量的数据,为了更好地在众多信息中获取准确的数据,可以通过爬虫程 序获取既定目标,有选择性地访问网址获取所需的信息,帮 助企业对数据进行抓取和分析,为企业进行决策提供正确的 数据。
参考文献
[1] 李玉香,王孟玉,涂宇晰.基于python的网络爬虫技 术研究[J].信息技术与信息化,2019(12):143-145.
[2] 丁晓东.数据到底属于谁?—从网络爬虫看平台数
据权属与数据保护[J].华东政法大学学报,2019,22(5):69-83.
[3] 吴永聪.浅谈Python爬虫技术的网页数据抓取与分 析[J]•计算机时代,2〇19(8):94_96.
[4] 曾健荣,张仰森,郑佳,等.面向多数据源的网络爬虫 实现技术及应用[J].计算机科学,2019,46(5):304-309.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论