【发布时间】:2014-08-12 01:09:10
【问题描述】:
我正在尝试从交通部 (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">
“Go”按钮对应于以下行:
<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("btnSmGOIcon", "", true, "", "", false, false))" language="javascript" border="0" type="image">
我想将位置/站点设置为“32”,并在从 2013 年 1 月 1 日到 2014 年 8 月 11 日期间轮换日历日,同时选择所有表格并将它们绑定到一个数据框中。
非常感谢您
【问题讨论】:
-
你真的要尝试“模拟”一个帖子吗?如果是这样,恕我直言,您应该首先测试您是否真的可以 - 例如使用
curl之类的工具。如果你不能模拟 POST,你就不能“刮”任何东西——例如如果站点使用 ASP.NET EVENT/VIEWSTATE 验证(换句话说,防止欺骗/模拟 POST)。快速查看源代码表明它们是...... -
@EdSF,你是说无法从这个网页上抓取信息?
-
在我最近的一个问题中。有人推荐使用
RSelenium,它非常适合这些类型的问题。安装它并查看??RSelenium并在小插图中选择RSelenium-basics以获得一组很好的示例 -
@JoseR 是的,我做了(如果某些方面存在,则很难)虽然下面的工具连接/自动化浏览器活动应该很棒(没有不知道,也没有尝试过)。所以这对我来说也是一个学习的时刻:)
标签: javascript asp.net r geolocation web-scraping