gpt4 book ai didi

javascript - 在 rvest 中抓取位置数据

转载 作者:搜寻专家 更新时间:2023-11-01 04:16:03 25 4
gpt4 key购买 nike

我目前正在尝试从我使用 rvest 的 url 列表中抓取纬度/经度数据。每个 URL 都有一个带有特定位置的嵌入式谷歌地图,但 URL 本身并不显示 API 所采用的路径。

查看页面源代码时,我看到我要找的部分在这里:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
function initialize() {
var myLatlng = new google.maps.LatLng(43.805170,-70.722084);
var myOptions = {
zoom: 16,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.SATELLITE
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"F.E. Wood & Sons - Natural Energy"
});

现在,如果我能得到具有 LatLng(....) 输入的行,我就可以使用一些字符串解析操作来导出所有 URL 的纬度和经度值。

我编写了以下代码来获取我的数据:

require(rvest)
require(magrittr)
fetchLatLong<-function(url){
url<-as.character(url)
solNum<-html(url)%>%
html_nodes("#map_canvas")%>%
html_attr("script")
}

(“map_canvas”选择器是使用 selectorGadget 找到的;您可以查看整个源代码 here)。

我正在经历最糟糕的时光来阅读我想要的东西。我尝试了许多节点和节点组合,但无济于事。我玩过 phantom.js,但问题是它不是我追求的 js 渲染的 html 内容:我正在寻找 API 查询输入,它被写入页面代码(或者,至少,在我的业余眼中似乎是)。

有人有什么建议吗?

最佳答案

这似乎可行:

library(rvest)
library(magrittr)
library(stringr)

pg <- html("http://biomassmagazine.com/plants/view/2285")

pg %>%
html_nodes("div.pad20 > script") %>%
extract2(2) %>%
html_text %>%
str_match_all("LatLng\\(([[:digit:]\\.\\-]+),([[:digit:]\\.\\-]+)") %>%
extract2(1) %>%
extract(2:3) -> lat_lng

lat_lng

## [1] "43.805170" "-70.722084"

关于javascript - 在 rvest 中抓取位置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30721124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com