网页源代码抓取工具(关键词:R语言;网络爬虫;网页信息抓取;二手房)

优采云 发布时间: 2021-10-19 04:09

  网页源代码抓取工具(关键词:R语言;网络爬虫;网页信息抓取;二手房)

  庄旭东王志坚

  

  摘要:随着互联网的飞速发展和大数据时代的到来,互联网上的数据和信息呈爆炸式增长,网络爬虫技术越来越流行。本文以二手房销售数据为例,探索了基于R语言爬虫技术抓取网页信息的方法,发现基于R语言rvest函数包的网页信息抓取方法和SelectorGadget 工具比传统方法更简单、更快捷。

  关键词:R语言;网络爬虫;网页信息抓取;二手房

  传统的网络搜索引擎在网络信息资源的搜索中扮演着非常重要的角色,但它们仍然存在很多局限性。如今,R语言在网络信息爬取方面有着其独特的优势。它写的爬虫语法比较直观简洁,规则比较灵活简单,对操作者的要求比较低。无需深入研究某个软件或编程。语法不必有很多与网络相关的知识。非专业人士甚至初学者都可以轻松掌握其方法,快速方便地获取所需的网络信息。此外,R 软件可以非常自由地处理百万级以下的数据,而且它本身就是一个强大的统计计算和统计绘图工具。使用R软件进行操作,实现了爬虫技术的网页。信息采集得到的数据可以直接进行统计分析和数据挖掘,无需重新导入或整合数据,更加直接方便。

  1 研究方法概述

  本文使用R软件中的rvest函数包来抓取网页信息数据。使用这个包中的三个函数read_html()、html_nodes()和html_text()配合SelectorGadget工具(以下简称工具)。使用 read_html() 函数抓取整个网页的原创 HTML 代码,然后使用 html_nodes() 函数从整个网页的元素中选择工具获取的路径信息,最后使用 html_text() 函数进行将HTML代码中的文本数据提取出来,得到我们需要的数据。并根据网页的规则,使用for()循环函数实现多个网页的信息抓取。然后对比不同的爬取网页信息的方法,得到R语言作为爬虫的优势,比较和展望了R语言爬虫技术的网页信息抓取方法,以及大数据时代的数据获取方法和技术。探索。

  2 网络爬虫的相关概念和步骤

  2.1 网络爬虫概念

  网络爬虫是一种用于自动提取网页信息的程序。它可以自动从万维网上下载网页并将采集到的信息存储在本地数据库中。根据网络爬虫系统的结构和实现技术,大致可以分为以下几类:通用网络爬虫、聚焦网络爬虫、增量网络爬虫、深度网络爬虫。这些爬虫技术的出现就是为了提高爬虫的效率,我们需要在更短的时间内获取尽可能多的有用的页面信息。

  2.2 网络爬虫步骤

  实现一个网络爬虫的基本步骤是:①首先从精心挑选的*敏*感*词*网址中选取一部分;②将这些*敏*感*词*放入待抓取的URL队列中;③从待爬取的URL队列中取出待爬取的URL,解析DNS,得到主机的ip,下载该URL对应的网页,保存到下载的网页库中。另外,将这些网址放入已爬取的网址队列中;④对已爬取的URL队列中的URL进行解析,并对其中的其他URL进行解析,并将该URL放入待爬取的URL队列中,从而进入下一个循环。

  3 基于R语言rvest包实现网页信息抓取

  本文使用SelectorGadget路径选择工具直接定位到我们需要的数据,结合R语言rvest包,以2018年4月链家网广州二手房销售数据为例,抓取我们需要的数据从网页。

  3.1 网页信息抓取的准备

  3.1.1 SelectorGadget 工具

  抓取信息需要先定位数据,选择网页节点,然后获取二手房相关信息的网页路径信息。具体步骤如下:

  ①准备SelectorGadget工具:打开广州链家网站,打开工具栏。打开后会显示在页面的右下角。

  ②生成一个CSS选择器,显示选择器能捕捉到的HTML元素:在网页上用鼠标点击要获取的数据,选中的HTML元素会被标记为绿色,工具会尝试检测测试用户想要抓取的数据的规则,然后生成一组 CSS 选择器并显示在工具栏上。同时,页面上所有符合这组 CSS 选择器的 HTML 元素都会被标记为*敏*感*词*,即当前组 CSS 选择器会提取所有绿色和*敏*感*词*的 HTML 元素。

  ③去除不需要的 HTML 元素:该工具检测到的 CSS 选择器通常收录一些不需要的数据。这时候可以删除那些被标记但要排除的HTML元素,被删除的元素会被标记成红色。

  ④获取准确的CSS选择器:选中并排除HTML元素后,所有要提取的元素都已被准确标记,可以生成一组准确的CSS选择器并显示在工具栏上。在 R 软件中处理。

  3.1.2R软件相关功能包及使用

  实现网页信息的抓取,R语言的编写需要参考xml2、rvest、dplyr、stringr等函数包中的函数,所以下载这些函数包并加载需要的包。具体方法是使用 install.packages() 和 library() 函数来实现,也可以将这些包下载到本地安装。

  3.2 网页信息抓取的实现

  以联家网广州二手房销售为例。按照前面的步骤,首先使用read_html()函数抓取整个链家网页的原创HTML代码,然后使用html_nodes()函数通过SelectorGadget工具从整个链家网页中选取元素获取路径信息,最后使用html_text()函数提取HTML代码中的文本数据,得到我们需要的链家网数据。

  rvest包抓取某个网页数据的几个功能,但是可以发现广州链家网上有很多二手房数据的页面,有用的信息包括房子名称,描述,位置,房价,因此,选择循环函数for(),编写如下函数,抓取链家网站上所有有价值的信息,写入csv格式的文件中进行进一步分析。限于篇幅,这里列出了一些结果,如下表所示。

  上表给出了广州部分二手房的基本信息。

  可以看出,使用rvest包结合CSS选择器,可以快速实现R语言下的网络数据抓取,并适当结合stringr包中的字符串处理功能,对网页数据进行清理整理,可以非常方便有效地获取网页数据。直接数据处理和分析。通过直接利用爬取的数据,对房价是否符合正态分布进行简单的分析,展示了R语言对网页数据爬取后得到的数据进行分析的便利性和优越性。

  4 rvest包与其他网络信息抓取方式对比分析

  R语言实现网络爬虫有两种方式,一种是使用本文提到的rvest包,另一种是使用RCurl包和XML包。

  使用rvest函数包和SelectorGadget工具实现R语言在网页信息抓取上的应用,比使用XML包和RCurl包抓取更简单,代码更简洁直观。R中的rvest包压缩了原来复杂的网络爬虫工作来读取网页、检索网页和提取文本,变得非常简单,并且根据网页的规则,使用for()循环函数来实现多个网页爬行。使用XML包和RCurl包来实现,需要一些网页的基础知识,模拟浏览器伪装header的行为,然后访问页面解析网页,然后定位节点获取信息,最后整合信息。这种方法比较困难,也比较麻烦。有时访问网页时无法顺利读取和解析,选择节点时需要具备HTML基础知识。在网页的源代码中查找它。一些网页的源代码相当复杂,不易定位。节点。

  两种实现方式所能达到的效果基本相同,都可以利用for()循环函数抓取多个网页数据。从动手的角度来说,rvest包展示比较好,就是XML包和RCurl包。进化,更简洁方便。

  另外,网络爬虫在Python中的实现也很流行。Python 的 pandas 模块工具借鉴了 R 的数据帧,而 R 的 rvest 包指的是 Python 的 BeautifulSoup。这两种语言在一定程度上是互补的。Python在实现网络爬虫方面更有优势,但在网页数据爬取方面,基于R语言工具的实现更加简洁方便,R是统计分析中更高效的独立数据分析工具。使用 R 语言获取的数据,避免了繁琐的平台环境转换。从数据采集、数据清洗到数据分析,代码环境和平台保持一致性。

  参考:

  [1] 吴锐,张俊丽.基于R语言的网络爬虫技术研究[J]. 科技信息, 2016, 14 (34): 35-36.

  [2] 西蒙·蒙泽尔特。基于R语言的自动数据采集:网页抓取和文本挖掘实用指南[M]. 机械工业出版社,2016.

  [3] 刘金红,卢玉良.专题网络爬虫研究综述[J]. 计算机应用研究, 2007, 24 (10): 26-29.

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线