R语言抓取广州租房信息
要去广州工作了,所以抓取了广州租房信息看一下,来源是某家广州租房网。网上爬虫代码很多,对于简单的网页实现起来也很简单,直接上核心代码:
require(RCurl) ##载入包
require(XML)
rm(list = ls())
GZsource <- data.frame()
system.time(for (i in 1:100) {if(i==1){webside ="http://xxxxxxxx.com/zufang/"}else{webside = paste("http://xxxxxxxx/zufang/pg", i, "/", sep = "")}url = getURL(webside, .encoding = "utf-8")url_parse = htmlParse(url, encoding = "utf-8")# 标题、链接node = getNodeSet(url_parse, path = "//div[@class='list-wrap']//div[@class='info-panel']//a[@title]")title_name = sapply(node, function(X) xmlGetAttr(X, "title"))Encoding(title_name) = "UTF-8"link = paste("http://sh.xxxxx.com", sapply(node, function(X) xmlGetAttr(X, "href")), sep = "")# 小区、户型、面积node = getNodeSet(url_parse, path = "//div[@class='list-wrap']//div[@class='where']//span")inf1 = sapply(node, xmlValue)xiaoqu = inf1[(1:length(title_name))*5 - 4]house_type = gsub("\\s+", "", inf1[(1:length(title_name))*5 - 2])size = as.numeric(gsub("[^0-9]*$", "", inf1[(1:length(title_name))*5 - 1]))# 区域、地段node = getNodeSet(url_parse, path = "//div[@class='list-wrap']//div[@class='other']//a")inf2 = sapply(node, xmlValue)area = inf2[(1:length(title_name))]#diduan = inf2[(1:length(title_name))*2 - 0]# 价格node = getNodeSet(url_parse, path = "//div[@class='list-wrap']//div[@class='price']/span[@class='num']")price = as.numeric(gsub("[^0-9]", "", sapply(node, xmlValue)))GZsource = rbind(GZsource, data.frame(title_name, link, xiaoqu, house_type, size, area, price, stringsAsFactors = FALSE))Sys.sleep(1)
})
为了分地区分析,我直接按照行政区分别进行的抓取,比如天河区如下:
Tianhe <- data.frame()
system.time(for (i in 1:100) {if(i==1){webside = "http://xxxxxxxx/zufang/tianhe/"}else{webside = paste("http://xxxxxxxx/zufang/tianhe/pg", i, "/", sep = "")}url = getURL(webside, .encoding = "utf-8")url_parse = htmlParse(url, encoding = "utf-8")# 标题、链接node = getNodeSet(url_parse, path = "//div[@class='list-wrap']//div[@class='info-panel']//a[@title]")title_name = sapply(node, function(X) xmlGetAttr(X, "title"))Encoding(title_name) = "UTF-8"link = paste("http://sh.xxxxx.com", sapply(node, function(X) xmlGetAttr(X, "href")), sep = "")# 小区、户型、面积node = getNodeSet(url_parse, path = "//div[@class='list-wrap']//div[@class='where']//span")inf1 = sapply(node, xmlValue)xiaoqu = inf1[(1:length(title_name))*5 - 4]house_type = gsub("\\s+", "", inf1[(1:length(title_name))*5 - 2])size = as.numeric(gsub("[^0-9]*$", "", inf1[(1:length(title_name))*5 - 1]))# 区域、地段node = getNodeSet(url_parse, path = "//div[@class='list-wrap']//div[@class='other']//a")inf2 = sapply(node, xmlValue)area = inf2[(1:length(title_name))]#diduan = inf2[(1:length(title_name))*2 - 0]# 总价node = getNodeSet(url_parse, path = "//div[@class='list-wrap']//div[@class='price']/span[@class='num']")price = as.numeric(gsub("[^0-9]", "", sapply(node, xmlValue)))# 单价# node = getNodeSet(url_parse, path = "//div[@class='list-wrap']//div[@class='price-pre']")# danjia = as.numeric(gsub("[^0-9]", "", sapply(node, xmlValue)))Tianhe = rbind(Tianhe, data.frame(title_name, link, xiaoqu, house_type, size, area, price, stringsAsFactors = FALSE))Sys.sleep(1)
})
Tianhe$District <- "天河区"
最后把每个区的合并起来就行:
GZhouse <- rbind(Tianhe,panyu,liwan,Yuexiu,haizhu,baiyun,luogang,huangpu,huadou,zengcheng)
最后结果如下
下一步就是在预处理后对房价进行可视化分析,看看现在不同区域的价格差异,等有时间再多找些数据以后多方位进行房价影响因素分析。
未完待续…
R语言抓取广州租房信息相关推荐
- tesseract破解css反爬抓取自如租房信息
引言 作为一个刚毕业两年的打工人,在深圳这种房价压死人的城市,买房是不可能买房了,只能寄希望于租到一个便宜又舒适的房子.今天给大家带来的案例是tesseract破解css反爬抓取自如租房信息,将好房源 ...
- r语言抓取网页数据_使用R进行网页抓取的简介
r语言抓取网页数据 by Hiren Patel 希伦·帕特尔(Hiren Patel) 使用R进行网页抓取的简介 (An introduction to web scraping using R) ...
- 用R语言抓取历史天气数据
用R语言抓取历史天气数据 中国城市历史数据网保存有从2011年1月1日起的历史数据,包括天气.高低温以及风向和风力,对于需要分析气象数据又苦于无法得到数据的研究人员,爬取数据不失为一个办法中的办法.但 ...
- R语言抓取暴风魔镜评论数据并绘制各省市购买量热力图
本博文地图绘制部分来源于开源中国openthings博主的博客 最终效果图: 第一部分为暴风魔镜评论数据的抓取 打开京东暴风魔镜的页面,可以看到是下面这个样子的: 我们要对评论进行抓取,一般电商的评论 ...
- 使用R语言抓取A股股价数据
不出所料使用R抓取A股的股价又是一个非常轻松的事.上午刚刚说到咱们可以轻松拿到各证券的研报信息,那么咱们如果想分析一下,研报对于股价的影响,应该如何做呢? 一.还是安装包 install.packag ...
- r语言的runmed函数_使用R语言爬取DailyMed药物信息
之前介绍过如何批量爬取NCBI中基因详细信息,今天介绍爬取DailyMed指定药物的数据. 根据指定药物药物及其ID列表(由ID可以获得该药的网页链接)爬取这些药物在DailyMed中的相关信息: D ...
- r语言抓取维基百科表格数据
URL <- "file:///C:/Users/Administrator/Desktop/olympic_host.html" wiki<-read_html(UR ...
- python爬虫分析——广州租房信息爬取并分析
一.在某网站上爬取相关数据 爬取到的数据情况如下: 二.数据的读取和预处理(爬取下来的数据没有缺失值和异常值) import pandas as pd import numpy as np impor ...
- [Python] scrapy + selenium 抓取51job 职位信息(实现 传参 控制抓取 页数+职位名称+城市)
目录 一.目标 二.51job网页分析: 1.网页构成观察 2.网页分析 三.代码实现 1. 踩过的坑-----实现城市选择 2.代码实现 3.代码优化 1)存放格式优化 2)在爬虫中去掉\xa0\x ...
最新文章
- 为何我的BLOG不能DIY?
- php proc open 返回,PHP用proc_open新建子进程使用管道通信非阻塞执行PHP脚本
- 用surfaceView实现高性能动画
- postman设置带token的请求
- 卸载 插件_永远都不会卸载的CAD插件,好用到怀疑人生
- 前端学习(2785):实现导航的基本结构
- django-登陆案例-分析篇1909
- 在windows下挂载nfs文件系统
- 动手学深度学习(PyTorch实现)(六)--卷积神经网络基础
- FIT2CLOUD云管平台完成华为云鲲鹏云服务兼容性认证
- 支付宝第三方登录具体实现
- Unsupervised Super Resolution Reconstruction of Traffic Surveillance Vehicle Images
- 碎片化知识管理工具Memos
- Perfectly Secret Encryption
- Celery入门--定时任务的开发及运行
- pygame小项目 ~ 3 :Python完成简易飞机大战
- PIE-SDK V5.2 For .NET(3)——常用相关命令接口
- 9 本优秀的 R 语言免费电子书
- iOS App被Apple拒绝的原因
- mysql的strict_MySQL Strict SQL MODE