带有R的网页搜罗婚姻网站
在本教程中,我们将介绍如何使用R从婚姻网站中提取信息。我们将进行网络抓取,这是将网站上非结构化格式的可用数据转换为可进一步用于分析的结构化格式的过程。
我们将使用 Hadley Wickham创建的名为rvest的R包 。该软件包简化了抓取网页的过程。
R中的网页爬取
安装所需的软件包
要下载并安装rvest软件包,请运行以下命令。我们还将使用dplyr,它对数据处理任务很有用。
install.packages(“ rvest”)
install.packages(“ dplyr”)
加载所需的库
要使用这些库,您需要提交以下程序。
库(rvest)
库(dplyr)
婚姻网站上的抓取信息
首先,我们需要了解URL的结构。请参阅下面的URL。
https://www.jeevansathi.com/punjabi-brides-girls
https://www.jeevansathi.com/punjabi-grooms-boys
第一个URL带您进入该网页,其中显示了旁遮普社区的女孩资料,第二个URL提供了有关旁遮普社区的男孩资料的详细信息。
我们需要将主URL拆分为不同的元素,以便可以访问它。
Main_URL =静态URL +母语+新郎
查看以下R代码如何准备主URL。在代码中,您需要提供以下详细信息-
是否正在寻找女孩/男孩的个人资料。输入新娘以查看女孩的个人资料。输入新郎以查看男孩的个人资料。
选择母语。例如旁遮普语,泰米尔语等
#寻找新娘/新郎Bride_Groom =“新娘”#可能的值:新娘,新郎#选择母亲舌Mother_Tongue =“ punjabi”#可能的值#punjabi#泰米尔语#孟加拉语#泰卢固语#kannada#marathi#URL if(tolower(Bride_Groom) ==“新娘”){html = paste0('https://www.jeevansathi.com/'
看到输出:
[1]“
https://www.jeevansathi.com/punjabi-brides-girls”
提取配置文件ID
首先,您需要使用css选择器选择html文档的一部分: html_nodes()。使用 SelectorGadget ,它是免费提供的Chrome扩展程序。这是找出哪个选择器提取您感兴趣的数据的最简单,最快的方法。如何使用SelectorGadget:单击您希望选择器匹配的页面元素(它将变为绿色)。然后,它将为该元素生成一个最小的CSS选择器,并将突出显示(黄色)与选择器匹配的所有内容。
文字= read_html(html)%>%html_nodes(“。profileContent .color11 a”)%>%html_text()
profileID = data.frame(ID = text)
ID 1 ZARX0345 2 ZZWX5573 3 ZWVT2173 4 ZAYZ6100 5 ZYTS6885 6 ZXYV9849 7 TRZ8475 8 VSA7284 9 ZXTU1965 10 ZZSA6877 11 ZZSZ6545 12 ZYSW4809 13 ZARW2199 14 ZRSY0723 15 ZXAT2801 16 ZYXX8818567 19
rvest中的基本功能非常易于使用且功能强大。下面列出了这些功能的说明-
read_html(): 您可以从URL创建html文档
html_nodes(): 从HTML文档中提取片段。
html_nodes(“。class”): 基于CSS类调用节点
html_nodes(“#class”): 基于<div>,<span>,<pre> id调用节点
html_text() :仅从HTML标记中提取文本
html_attr() :提取单个属性的内容
.class和#class之间的区别
1. .class针对以下元素:
<div class =“ class”> </ div>
2. #class针对以下元素:
<div id =“ class”> </ div>
题库