gpt4 book ai didi

javascript - R:用JavaScript抓取网页(需要给两个值和抓表)

转载 作者:行者123 更新时间:2023-11-30 12:38:38 26 4
gpt4 key购买 nike

我正在尝试从交通部 (DOT) 交通统计网页(南卡罗来纳州 - 美国)获取表格。在这种特殊情况下,我试图抓取特定位置 (textBox1) 和日期范围 (textBox2) 的所有表格。我已经完成了一些基本的网页抓取,但这确实超出了我目前的知识范围。

这是网页(添加 http——不知道为什么他们没有这个域名):206.74.144.15/Poll5WebAppPublic/wfrm/wfrmViewDataNightly.aspx

第一个文本框(站点)对应于以下行:

<input name="WucSites1:txtSiteID" value="0032" maxlength="4" size="1" id="WucSites1_txtSiteID" class="TextBox" style="width:40px;" type="text">

第二个文本框(日期)对应于以下行:

<input name="WucDates1:txtDate" value="08/10/2014" maxlength="10" size="8" id="WucDates1_txtDate" class="TextBox" style="width:88px;" type="text">

“开始”按钮对应于以下行:

<input name="btnSmGOIcon" id="btnSmGOIcon" tabindex="1" title="Get Data for Chosen Site" class="cssLargeIcons" onmouseover="this.src = '../images/iconImages/GO_o.png';" onmouseout="this.src = '../images/iconImages/GO.png';" src="../images/iconImages/GO.png" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;btnSmGOIcon&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" language="javascript" border="0" type="image">

我想将位置/站点设置为“32”,并轮换从 01/01/2013 到 08/11/2014 的日历日,同时选择所有表并将它们绑定(bind)到一个数据框中。

非常感谢您

最佳答案

这份工作非常适合 RSelenium

一旦你安装了合适的软件

library(RSelenium)
library(XML)
startServer()
d <- remoteDriver$new()
# open and navigate to page
d$open()
d$navigate('http://206.74.144.15/Poll5WebAppPublic/wfrm/wfrmViewDataNightly.aspx')
# set site = 0032
d$findElement('name','WucSites1:txtSiteID')$setElementAttribute('value',list('0032'))
# loop through dates
dates <- strftime(seq.Date(as.Date('01/01/2013', format =
'%m/%d/%Y'), as.Date('08/11/2014', format = '%m/%d/%Y'),by=1),
'%m/%d/%Y')

results <- lapply(dates, function(i,dr){
ii <- force(i)
# change date
dr$findElement('name','WucDates1:txtDate')$setElementAttribute('value',list(ii))
# click go
dr$findElement('name','btnSmGOIcon')$clickElement()
# extract table (the first three lines are header)
data <- readHTMLTable(dr$findElement('id', 'gridForData')$getElementAttribute('outerHTML')[[1]],
skip=1:3)
data$date = ii
return(data)
},dr = d)

关于javascript - R:用JavaScript抓取网页(需要给两个值和抓表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25254723/

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