基于Python的Web信息获取方法研究
魏冬梅+何忠秀+唐建梅
摘要:随着大数据和云计算等新一代互联网技术的迅速发展,Web信息量逐日海量递增。从海量数据中提取有效信息,挖掘有潜在价值的关系成为当前的研究热点,这对揭示已知规律、预测未知结果有极大的辅助作用。对当前Web信息获取方法、原理和关键技术进行研究分析,重点阐述了数据采集相关技术中网络爬虫算法的分类与应用。提出一种以Python和相关库为主要工具,结合模块化方法,构建Web文本信息获取系统框架与流程的策略。案例中通过定义采集函数,实现对给定的维基百科词条,快速搜索与该词条相关信息,对词条内链接和外链接进行有效爬取。结果表明,Python在数据采集方面具有较高的有效性和可扩展性。
关键词:Python;信息获取;网络爬虫;正则表达式
DOIDOI:10.11907/rjdk.172302
中图分类号:TP301
文献标识码:A文章编号文章编号:16727800(2018)001004103
Abstract:As the development of big data and cloud computing, an increasing number of information has been boosted significantly. Extracting the information and extract useful information from huge amounts of data effectively has been becoming the current hot spot. Moreover, it has contributed to revealing the known regulations and predicting unknown results. In this paper, the current Web information retrieval method, the principle and key technology has been analyzed and the algorithm, classification and application of Web crawler in data acquisition technology are emphasized. This paper presents a method of constructing Web text information acquisition system based on Python and related libraries. In the case, by defining the regular expressions and crawling function, it realized searching for the relevant information of the entry, and effectively retrievaling the internal links and the external links. The results show that Python has significant efficiency and expansibility in data retrieval.
Key Words:Python; information access; Web crawler; regular expression
0引言
互聯网提供了大量数据集,但是由于网站本身的多样化和异构性以及网页文档结构的复杂性,很多数据都被嵌入到网页结构与样式中。Web信息获取,也称为基于Web的知识发现。Web数据获取技术分为:基于本体的数据获取、基于自然语言的数据获取、基于网站查询的数据获取、基于规则和地理位置的数据获取。利用行之有效的方法,将可用的信息从海量数据中抽取出来,挖掘潜在价值,将在金融、电信业、舆情监控、数据分析以及其他科学领域发挥重要作用。由此可见,获取Web信息的技术显得尤为关键。
1Web信息获取技术
Web信息获取是指从网站上提取信息的一种计算机软件技术,能将任何可以在浏览器上显示的数据提取出来,因此也称为屏幕抓取或数据采集。Web信息获取是数据挖掘中的一项重要技术,它涉及到计算机网络、文本处理、决策分析、人工智能等多个领域。其中,基本Web文本信息获取和知识发现,包括Web文本内容获取、结构获取、拓扑获取等[2],需要从网站获取所需的非结构化信息数据,分析处理后存储为统一格式的本地数据文件或直接存入本地数据库,涉及网络爬虫、数据结构化、正则表达式等关键技术[3]。
1.1网络爬虫工作原理
网络爬虫是一个十分形象的名称,俗称网络蜘蛛或网络机器人,是一种按照规则对Web信息进行遍历,自动抓取万维网信息的程序或脚本。网络爬虫通常分为两类:一类是搜索引擎提供商设计的爬虫,这类爬虫会不断地在互联网中利用链接跳转采集页面信息,返回后供搜索引擎建立相应索引。当用户在引擎中输入文字搜索时,引擎即会根据输入对信息进行检索,找到接近搜索文字的相关内容并返回;另一类是对明确指定的网站进行数据抓取,获得所需信息。这些信息通常是可以公共访问的数据集。
网络爬虫的主要算法思想是通过Internet从指定的种子集合读取URL访问的Html页面内容,以及页面包含的超级链接,并通过这些链接继续爬取下级子页面,然后收集用户信息,进行分类和整理[4]。通常有两种情况,一是Html使用标签表示超级链接,进一步探测href属性,实现跳转到链接目标;二是链接跳转是通过触发了相关JavaScript代码,如此不断爬取下去,从而搜集到更多数据。网络爬虫结构如图1所示。
摘要:随着大数据和云计算等新一代互联网技术的迅速发展,Web信息量逐日海量递增。从海量数据中提取有效信息,挖掘有潜在价值的关系成为当前的研究热点,这对揭示已知规律、预测未知结果有极大的辅助作用。对当前Web信息获取方法、原理和关键技术进行研究分析,重点阐述了数据采集相关技术中网络爬虫算法的分类与应用。提出一种以Python和相关库为主要工具,结合模块化方法,构建Web文本信息获取系统框架与流程的策略。案例中通过定义采集函数,实现对给定的维基百科词条,快速搜索与该词条相关信息,对词条内链接和外链接进行有效爬取。结果表明,Python在数据采集方面具有较高的有效性和可扩展性。
关键词:Python;信息获取;网络爬虫;正则表达式
DOIDOI:10.11907/rjdk.172302
中图分类号:TP301
文献标识码:A文章编号文章编号:16727800(2018)001004103
Abstract:As the development of big data and cloud computing, an increasing number of information has been boosted significantly. Extracting the information and extract useful information from huge amounts of data effectively has been becoming the current hot spot. Moreover, it has contributed to revealing the known regulations and predicting unknown results. In this paper, the current Web information retrieval method, the principle and key technology has been analyzed and the algorithm, classification and application of Web crawler in data acquisition technology are emphasized. This paper presents a method of constructing Web text information acquisition system based on Python and related libraries. In the case, by defining the regular expressions and crawling function, it realized searching for the relevant information of the entry, and effectively retrievaling the internal links and the external links. The results show that Python has significant efficiency and expansibility in data retrieval.
Key Words:Python; information access; Web crawler; regular expression
0引言
互聯网提供了大量数据集,但是由于网站本身的多样化和异构性以及网页文档结构的复杂性,很多数据都被嵌入到网页结构与样式中。Web信息获取,也称为基于Web的知识发现。Web数据获取技术分为:基于本体的数据获取、基于自然语言的数据获取、基于网站查询的数据获取、基于规则和地理位置的数据获取。利用行之有效的方法,将可用的信息从海量数据中抽取出来,挖掘潜在价值,将在金融、电信业、舆情监控、数据分析以及其他科学领域发挥重要作用。由此可见,获取Web信息的技术显得尤为关键。
1Web信息获取技术
Web信息获取是指从网站上提取信息的一种计算机软件技术,能将任何可以在浏览器上显示的数据提取出来,因此也称为屏幕抓取或数据采集。Web信息获取是数据挖掘中的一项重要技术,它涉及到计算机网络、文本处理、决策分析、人工智能等多个领域。其中,基本Web文本信息获取和知识发现,包括Web文本内容获取、结构获取、拓扑获取等[2],需要从网站获取所需的非结构化信息数据,分析处理后存储为统一格式的本地数据文件或直接存入本地数据库,涉及网络爬虫、数据结构化、正则表达式等关键技术[3]。
1.1网络爬虫工作原理
网络爬虫是一个十分形象的名称,俗称网络蜘蛛或网络机器人,是一种按照规则对Web信息进行遍历,自动抓取万维网信息的程序或脚本。网络爬虫通常分为两类:一类是搜索引擎提供商设计的爬虫,这类爬虫会不断地在互联网中利用链接跳转采集页面信息,返回后供搜索引擎建立相应索引。当用户在引擎中输入文字搜索时,引擎即会根据输入对信息进行检索,找到接近搜索文字的相关内容并返回;另一类是对明确指定的网站进行数据抓取,获得所需信息。这些信息通常是可以公共访问的数据集。
网络爬虫的主要算法思想是通过Internet从指定的种子集合读取URL访问的Html页面内容,以及页面包含的超级链接,并通过这些链接继续爬取下级子页面,然后收集用户信息,进行分类和整理[4]。通常有两种情况,一是Html使用标签表示超级链接,进一步探测href属性,实现跳转到链接目标;二是链接跳转是通过触发了相关JavaScript代码,如此不断爬取下去,从而搜集到更多数据。网络爬虫结构如图1所示。