如何使用R语言连接MySQL数据库,rjson,网页抓取

如何使用R语言连接MySQL数据库

转自: http://www.tbk.ren/article.jsp?id=44

有网友问到,如何在R中调用MySQL数据库中的数据呢?

刚刚好我在做IP归属地分析的时候,用到这么一个功能,就用这个功能作为案例吧。

我实现的功能是这样子的,我有一个t_web_visit_log数据表,就是本博客访问过的IP地址,我想看看网友们都来自哪里,于是我就调用淘宝的IP库,获取该IP对应的地域信息,我把它保存到t_dim_ip_info表中。

每次我分析数据之前,我就要查一下,哪些新网友的数据是还没有的,我就把它加到t_dim_ip_info表中,这个程序就是实现这个功能的。

#加载需要的library
library(rjson)
library(RCurl)
library(RMySQL);

#建立MySQL的连接
connect <- dbConnect(MySQL(),dbname="db_olap_web", username="root", password="")

#对数据库进行查询
ips <- dbGetQuery(connect, "SELECT ip FROM(SELECT remote_Addr ip FROM t_web_visit_log GROUP BY remote_Addr) aWHERE ip NOT IN (SELECT ip FROM t_dim_ip_info);");

#淘宝IP库查询接口地址
searchURL ="http://ip.taobao.com/service/getIpInfo2.php?ip=";

#设置中文编码,否则往数据库写中文会有乱码
dbSendQuery(connect, "set namesutf8;");

#遍历需要抓取的IP信息
for(ip in ips[,1]) {
 url <- paste(searchURL, ip,sep="");
 print(url);
 #抓取 & 解析
 rjs <-getURL(url);
 rj <-fromJSON(rjs);
 
 country <-rj$data$country;
 area <-rj$data$area;
 region <-rj$data$region;
 city <-rj$data$city;
 isp <-rj$data$isp;
 #保存数据到MySQL
 sql <- paste("insert intot_dim_ip_info values('", ip, "', '",country, 
  "', '", area, "', '", region,"', '", city, "', '", isp ,"');", sep="");
 ips <- dbGetQuery(connect,sql);
 Sys.sleep(10);
}

#关闭数据库连接
dbDisconnect(connect);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值