抓取网页数据(用rvest包宝贝数据的过程启动R,以下是用 )
优采云 发布时间: 2022-02-20 09:20抓取网页数据(用rvest包宝贝数据的过程启动R,以下是用
)
rvest 是一个 R 语言包,用于网络数据抓取。该包的引入是“更容易收获(抓取)网页”。其中,html_nodes()函数查找标签的功能非常有用。rvest的使用以天猫搜索结果页的宝贝数据为例进行说明。
分析网页,打开天猫,按F12打开浏览器的开发工具。个人用火狐,谁让Chrom不支持linux,唉。但是用chrome还是不错的。其他浏览器也有类似的功能。随便搜一下,比如核弹之类的,我真的有结果了!接下来,在浏览器的开发工具“查看器”中查看网页的源代码。或按 CTRL+SHIFT+C 选择任何婴儿。可以看到宝贝的图片,月销量等数据都收录在
...
在块中。打开div块,哈哈,我们需要的产品图片、链接、月销量、价格、商家名称都在里面。也就是说,猫爸其实是相当开放的,没有太多的限制,不然抓到这些数据就麻烦了。接下来启动R,下面是用rvest包抓取宝贝数据的过程
install.packages("rvest")
library(rvest)
gurl % # 读取gurl的链接,指定编码为gbk
html_nodes("div.product-iWrap") # 筛选出所有包含在...块的内容
<p># 抓取卖家昵称和ID
sellerNick % html_nodes("p.productStatus>span[class]") %>%
html_attr("data-nick")
sellerId % html_nodes("p.productStatus>span[data-atp]") %>%
html_attr("data-atp") %>%
gsub(pattern="^.*,",replacement="")
# 抓取宝贝名称等数据
itemTitle % html_nodes("p.productTitle>a[title]") %>%
html_attr("title")
itemId % html_nodes("p.productStatus>span[class]") %>%
html_attr("data-item")
price % html_nodes("em[title]") %>%
html_attr("title") %>%
as.numeric
volume % html_nodes("span>em") %>%
html_text
# 最后保存成数据框对象并存盘备用,以及写入csv文件
options(stringsAsFactors = FALSE) # 设置字符串不自动识别为因子
itemData %
gsub(pattern="/fang5",replacement="http://cs.ganji.com/fang5")
# 缩略图链接
smallImg % html_nodes("dl>dt>div>a>img") %>% html_attr("src")
# 标题
iTitle % html_nodes("dl>dd>a") %>% html_attr("title")
# 户型
iLayout % html_nodes("dl>dd[data-huxing]") %>% html_attr("data-huxing")
# 面积
iArea % html_nodes("dl>dd[data-huxing]") %>%
html_attr("data-area") %>%
gsub(pattern="[^0-9]",replacement="")
# 筛选朝向等数据
iTmp % html_nodes("dl>dd[data-huxing]>span") %>% html_text
iOrientation % html_text %>%
gsub(pattern="\n",replacement=" ") %>%
gsub(pattern=" ",replacement="")
# 提取价格
iPrice % html_nodes("dl>dd>div.price>span:first-child") %>% html_text
# 提取单价
iTime % html_nodes("dl>dd>div.time") %>% html_text %>%
gsub(pattern="[^0-9]",replacement="") %>% as.numeric
# 合并数据框
iData