要点:
我已成功使用VBA执行以下操作:
使用getElementsByName登录网站
选择将生成的报告的参数(使用getelementsby ...)
需要注意的重要事项 - 该网站是客户端的
以上是简单的部分,困难的部分如下:
单击iframe中将数据集导出到csv的gif图像
我尝试过以下方法:
Dim idoc As HTMLDocument
Dim iframe As HTMLFrameElement
Dim iframe2 As HTMLDocument
Set idoc = objIE.document
Set iframe = idoc.all("iframename")
Set iframe2 = iframe.contentDocument
Do Until InStr(1, objIE.document.all("iframename").contentDocument.innerHTML, "img.gif", vbTextCompare) = 0
DoEvents
Loop
Run Code Online (Sandbox Code Playgroud)
为上面的逻辑提供一些背景 -
正是在这条线上它说"对象不支持这个属性或方法"
还尝试通过a元素和href属性访问iframe gif,但这完全失败了.我也尝试从其源URL抓取图像,但所有这一切都将我带到图像所在的页面.
注意:iframe没有ID,奇怪的是gif图像没有"onclick"元素/事件
最后的考虑 - 尝试使用R来抓取iframe
访问iframe的HTML节点很简单,但是尝试访问iframe的属性,随后表的节点被证明是不成功的.它返回的只是"Character(0)"
library(rvest)
library(magrittr)
Blah <-read_html("web address redacted") %>%
html_nodes("#iframe")%>%
html_nodes("#img")%>%
html_attr("#src")%>%
#read_html()%>%
head()
Blah
Run Code Online (Sandbox Code Playgroud)
只要ai包含read_html,脚本就会返回以下错误:
if(grepl("<|>",x)){:参数的长度为零时出错
我怀疑这是指字符(0)
感谢这里的任何指导!
非常感谢,
HTML
<div …
Run Code Online (Sandbox Code Playgroud) 我已成功设法使用此示例帖子在R中重新创建驱动时间多边形
上面的帖子只涉及一个带有等时线的单个多边形
问题 - 我想在5个不同的地图点上绘制多个驾驶时间多边形
通过创建5个单独的等时线,然后在我的Leaflet Map中添加5个多边形,我设法以非常费力的方式完成了这项工作.
#Preparing multiple dependancies----
packages <- c("readxl","dplyr","leaflet","htmltools", "sp", "osrm")
install.packages(packages)
lapply(packages, library,character.only=TRUE)
###
#Loading in Locations----
Location <- read_excel("filepath.xlsx", sheet=1)
###
#Extract Lon and Lat and create spatial dataframe
xy <- Location[, c(3,4)]
spatialdf <- SpatialPointsDataFrame(coords = xy, data = Location, proj4string = CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"))
class(spatialdf)
#Create Isochrone points
iso1 <- osrmIsochrone(loc = c(-2.3827439,53.425705), breaks = seq(from = 0, to = 60, by = 5))
iso2 <- osrmIsochrone(loc = c(-0.85074928,51.325871), …
Run Code Online (Sandbox Code Playgroud) 问题
我加载了英国的shapefile,没问题.让我们称呼它FILE1
.我还有一个包含2列的数据框文件:经度,纬度.我打电话给这个FILE2
.我试图绘制FILE2
shapefile地图上的坐标FILE1
并创建一个等值区域图
我也收到以下错误:
polygonData.default(data)出错:不知道如何从类tbl_df的对象获取路径数据
码
我从这个问题中得到了代码:Choropleth使用传单包在R中进行映射 并对其进行调整以适合我的数据
#Plot the Leaflet map----
mymap <- leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = coords, #This is data frame of U.K long and lat
fillColor = ~palette(file$TotalByPostcode),
fillOpacity = 0.6,
color = "darkgrey",
weight = 1.5,
popup = popup1)%>%
addLegend(position = 'topleft',
colors = c('#fee0d2',
'#fcbba1',
'#fc9272',
'#fb6a4a',
'#ef3b2c',
'#cb181d',
'#a50f15',
'#67000d'),
labels = c('0',"","","","","","",'100'),
opacity = 0.6,
title = "Totals")
print(map)
Run Code Online (Sandbox Code Playgroud)
这是我的数据框:
r ×2
choropleth ×1
excel ×1
html ×1
iframe ×1
leaflet ×1
maps ×1
osrm ×1
vba ×1
web-scraping ×1