基于Python的豆瓣电影网络爬虫设计

2020-10-20 11:41周萍李歌
西部论丛 2020年7期
关键词:网络爬虫

周萍 李歌

摘 要:该文通过剖析豆瓣电影网页源代码,借助Python性能完备的标准库、强大的第三方库requests、BeautifulSoup 及selenium等,编写程序快速实现豆瓣电影用户模拟登录、指定数据的抓取和保存。该文研究为培养数据挖掘和分析能力奠定了基础。

关键词:数据爬取;Python;网络爬虫

1前言

现在已经是大数据和人工智能的时代,信息数据的价值显得越来越重要,而为了从海量芜杂的信息数据中获得需要的信息,需要对数据进行挖掘与分析。在进行大数据分析或数据挖掘时,我们能够去一些比较大型的官方站点下载数据源。然而这些取得数据的模式,有时很难精确满足对数据的需求,而通过自行手动从互联网中去查找这些数据,消耗的精力和时间又太多。这时就能够使用爬虫技术,自动地从互联网中查找满足特定需要的数据内容,并将这些信息内容爬取回来作为我们的数据源,以便下步进行数据分析和挖掘。由此可见在随着对大数据获取需求的增大,网络爬虫的地位会越来越凸显。文章通过利用Python自带的标准库,对网络爬虫原理进行了研究并实现了豆瓣电影网站上数据的提取,为接下来进行数据可视化显示和数据分析积累了数据源。Python语法结构简单易学,自带有丰富的标准库和第三方库供程序员使用,可扩展使用于多种平台。Python爬虫工具包使用方便,数据抓取功能强大。

2 相关技术

2.1 python

Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。它语法简单明确,易于读写,上手容易,从而获得大量程序员的喜爱,被誉为“宇宙最好的编程语言”。 Python带有种类繁多的库,基本上通过计算机实现的任何功能,Python官方库里都有相应的模块进行支持,在基础库的基础上再进行开发,可大大提高开发效率。Python具备可移植性,由于它的开源本质,可被移植在不同平台上使用。Python语言目前广泛应用于系统运维、web开发、云计算、网络爬虫、计算与数据分析、人工智能等领域,已然成为了一种主流编程语言。

2.2网络爬虫

网络爬虫也叫做网络机器人,可以代替人工操作自动地在互联网中进行数据信息的采集与整理。目前最高效的Python爬虫框架有8个:Scrapy、PySpider、Crawley、Portia、Newspaper、Beautiful Soup、Grab和Cola。本文中使用的Beautiful Soup是一个高效的网页解析库,最主要的功能是可以从 HTML 或 XML 文件中提取数据。它是一个工具箱,通过解析文档的方式实现常用的文档导航、查询和修改。Beautiful Soup库使用简便,工作效率高。

3、程序设计

本次爬虫目标主要有3个,一是程序实现模拟登陆豆瓣;二是自定义搜索关键字(电影名或演员);三是爬取电影名称和详情页面内容,并另存为文件。根据分析网页源码从相应标签中获得每部电影的 URL地址,根据得到的URL地址进入二级页面,即电影详情页面。整个爬虫的流程是,模拟登陆→关键字搜索→通过循环模拟翻页→抓取需要的信息→获取下一页的url→写入文件。

3.1 模拟登陆

利用Python进行模拟登陆一般有三种方法: 一是POST 请求方法,需要在后台获取登录的 URL并填写请求体参数,然后 POST 请求登录;二是添加 Cookies 方法,先登录将获取到的 Cookies 加入 Headers 中,最后用 GET 方法请求登录;三是自动化测试工具Selenium 模拟登录,自动完成账号和密码的输入代替手工操作。本文用使用的是第三种,由程序控制浏览器完成登录并跳转入登录后的页面。

3.2关键字搜索

程序可以根据用户的需求进行有用信息的提取,由用户输入关键字,程序收到关键字后开始搜索,并在窗口打印出获取信息。此时用到的关键语句是Selenium库里的CSS locator语句,使用CSS_SELECTOR定位到网页源代码中有用信息的准确位置。

3.3 信息获取

网页信息爬取,常用的方法有两种,一是使用正则表达式去提取相关内容,二是使用python库。使用正则表达式通过提前设定好一些特殊的字及字符组合,匹配出网页的特定内容,对初学者来说比较困难,因此本文从第二种方式使用python库来入手。需要提取的信息有两部分,电影标题和详情页面。数据爬取的执行过程分为:一是分析网页源代码结构。利用开发者工具观察源代码,确定每个数据对应的元素位置和Class 名称。在对网页进行分析后发现,电影名均在同一个类名的标签下面,而电影的链接在另一个标签下面。在这里使用BeautifulSoup库对网页内容进行爬取。通过该库的soup.find_all语句提取出电影名称、剧情简介,获取到电影详情页的网址;二是根据上步获取的网址抓取网页;三是处理数据且将抓取后的数据写入指定文件中。上述三步重复执行直至数据采集结束。

3.4数据保存

数据提取完成后,程序显示开始和结束的时间,将结果保存在指定位置的csv文档中。

4、结束语

社会发展已经进入到大数据时代,人类社会产生的信息数据呈爆炸增长的态势,使用网页爬虫程序来对网页进行搜索,可以获取到更为真实全面的海量数据,在信息繁芜的网络时代更为行之有效。因此掌握爬虫程序编写技能在大数据时代信息搜集非常必要。而Python 作为一门流行的编程语言,具有灵活、简单、易用、快捷便利诸多优点。本文主要采用 Python带有的Selenium、BeautifulSoup、requests等功能强大的库,通过探索web页面数据、解析Html和提取链接数据的方法,深入研究爬虫的基本原理与数据挖掘的算法。爬虫程序获取的海量有效数据,为后续进行诸如市场预测、文本分析、机器训练方法等数据分析工作提供了數据来源。掌握 Python 抓取数据的方法、熟悉搜索引擎和网络爬虫相关基础以及检索技术,为将来从事数据收集与处理等相关工作打下良好基础。

参考文献

[1] 成文莹,李秀敏 . 基于Python的电影数据爬取与数据可视化分析研究[J].电脑知识与技术,2019(15):8-10.

[2] 方芳. 基于Scrapy框架京东网站笔记本电脑评论数据爬取和分析[J].电脑知识与技术,2020(6):7-9.

[3] 严家馨.基于Python对资讯信息的网络爬虫设计[J].科学技术创新,2020(05):57-58.

[4] 张艳.基于Python的网络数据爬虫程序设计[J]. 电脑编程技巧与维护 2020,(04),26-27

作者简介:周萍(1977年12月—)、女、汉族、籍贯四川省德阳市、现供职单位解放军78102部队高级工程师、硕士研究生、研究方向指挥自动化;

李歌(1985年1月—)、男、汉族、籍贯河北省霸州市、现供职单位解放军78102部队工程师、本科、研究方向计算机应用。

猜你喜欢
网络爬虫
炼铁厂铁量网页数据获取系统的设计与实现
基于社会网络分析的权威网页挖掘研究
主题搜索引擎中网络爬虫的实现研究
浅析如何应对网络爬虫流量
网络爬虫针对“反爬”网站的爬取策略研究