提问人:Andrea 提问时间:10/7/2021 更新时间:10/7/2021 访问量:26
修复了通过 ip 检查器网站(html+table)从 ip 列表获取城市信息到数据框的错误
Fix an error to getting city info from a list of ip through an ip checker website (html+table) to a data frame
问:
我有一个需要在地图上绘制的 IP 列表,我想使用这个网站 Ip Checker 来提取有关城市的信息并制作数据框。
ROW #7 包含有关城市的信息(如果存在),如果没有,则包含纬度和经度,但这是以后的问题
我试图达到的最终结果
知识产权 | 城市 | 出现次数 |
---|---|---|
64.4.99.114 | 科文顿 | 2 |
201.105.211.222 | 哈拉帕 | 2 |
73.6.19.32 | 德克萨斯城 | 1 |
等等
到目前为止,这是我通过手动插入获得的结果
url_ip <- "https://ipleak.net/?q=64.4.99.114"
page <- read_html(url_ip)
tbls <- html_nodes(page, "table")
tbls2 <- html_table(tbls)
table2 <- table2[c(1,7),2]
table2 <- t(table2)
city_table <- as.data.frame(table2)
手动插入的最终结果
V1版本 | V2版本 |
---|---|
64.4.99.114 | 科文顿 |
这是我到目前为止制作的
if (!require("pacman"))
install.packages("pacman")
pacman::p_load(
dplyr,
readr,
ggplot2,
hrbrthemes,
RColorBrewer,
lubridate,
countrycode,
stringi,
tidyverse,
rvest,
purrr,
tidyr,
openxlsx,
)
ip_range <- threedsecure_authentication_report_tidy %>% pull(shopper_ip) #this is from our payment's system report generator
ip_range <- unique(ip_range)
ip_range <- trimws(ip_range)
purrr::map_df(ip_range, ~ {
url_reviews <- paste0("https://ipleak.net/?q,.x)
page <- read_html(url_reviews)
# Review Question
tbls <- html_nodes(page, "table")
tbls2 <- html_table(tbls)
table2 <- table2[c(1,7),2]
table2 <- t(table2)
table2 <- as.data.frame(table2) -> q #I'm not sure about this part
data.frame(q) }) -> ip_geo
但我得到这个:open.connection(x, “rb”) 中的错误:HTTP 错误 504
这是回溯
12.
open.connection(x, "rb")
11.
open(x, "rb")
10.
read_xml.connection(con, encoding = encoding, ..., as_html = as_html,
base_url = x, options = options)
9.
read_xml.character(x, encoding = encoding, ..., as_html = TRUE,
options = options)
8.
read_xml(x, encoding = encoding, ..., as_html = TRUE, options = options)
7.
withCallingHandlers(expr, warning = function(w) if (inherits(w,
classes)) tryInvokeRestart("muffleWarning"))
6.
suppressWarnings(read_xml(x, encoding = encoding, ..., as_html = TRUE,
options = options))
5.
read_html.default(url_reviews)
4.
read_html(url_reviews)
3.
.f(.x[[i]], ...)
2.
map(.x, .f, ...)
1.
purrr::map_df(ip_range, ~{
url_reviews <- paste0("https://ipleak.net/?q=", .x)
page <- read_html(url_reviews)
tbls <- html_nodes(page, "table") ...
我也看到这样做的 R 包,但它们似乎不起作用: ip2location
答: 暂无答案
评论