繁体   English   中英

在R中循环多个网页

Loop multiple webpages in R

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

抱歉,这里可能涉及一个问题。 我正在尝试重现位于此处的 NYTime Dialect Map Visualization的Hack Session。 一开始我还可以,但是当我尝试对多个页面进行换页时遇到了问题。

为了使人们不必从幻灯片中复制信息,这是我到目前为止所要做的:

创建URL地址

mainURL <- 'http://www4.uwm.edu/FLL/linguistics/dialect/staticmaps/'
stateURL <- 'states.html'
url  <-  paste0(mainURL, stateURL)

下载并解析

tmp <- getURL(url)
tmp  <-  htmlTreeParse(tmp, useInternalNodes = TRUE)

提取页面地址并保存到subURL

subURL  <-  unlist(xpathSApply(tmp, '//a[@href]', xmlAttrs))

删除不是州名的页面

subURL  <- subURL[-(1:4)]

对我来说,问题开始于原始幻灯片24。 幻灯片说, 下一步是遍历状态列表并阅读每个问题的正文。 当然,我们还需要在流程中保存每个状态的名称 循环使用以下代码初始化:

survey <- vector(length(subURL), mode = "list")
i = 1
stateNames <-  rep('', length(subURL))

在此代码下,幻灯片表示survey 是一个列表,其中保存了有关每个州的信息 我对这种情况感到有些困惑,因为survey确实是一个长度为51的列表,但是每个元素都是NULL。 我也对i在这里所做的事情感到困惑(这在以后变得很重要)。 尽管如此,我仍然可以遵循代码的工作方式,并且我认为列表将在以后填充。

这确实是我感到困惑的下一张幻灯片。 例如,以阿拉斯加为例,显示URL如何包含每个州的名称:

为第一个状态创建URL并分配给suburl

 suburl  <- subURL[1]

从子网址中删除state_

 stateName <- gsub('state_','',suburl)

从stateName中删除.html

 stateName <- gsub('.html','',stateName)

到现在为止还挺好。 我可以针对每个州单独执行此操作。 但是,我无法弄清楚如何将其变成适用于所有状态的循环。 幻灯片仅包含以下代码:

 stateNames[i] <- stateName

这就是我卡住的地方。 上一张幻灯片将1分配给i ,因此唯一要做的就是获取阿拉斯加(AK)的名称,但其他所有元素均为“”(正如先前所期望的stateNames所定义的那样)。

我确实尝试了以下方法:

 stateNames <- gsub('state_','',subURL)
 stateNames <-gsub('.html','',stateNames)

这并不完全有效,因为此向量的长度为51,但是上面显示的向量的长度仅为1。(稍后,我希望每个州都有自己的名称,而不是让所有州都具有相同的名称51个州名)。 而且,我不知道如何使用stateNames(i) <- stateName命令。

无论如何,我一直坚持到最后(包括原始内容和修改内容),希望事情最终能够解决问题(有时我得到的内容与演示文稿中的内容相同),但最终事情还是崩溃了。 我认为稍后在幻灯片中还会有另一个问题(对象的子集以前是不存在的),但是我想问题也很容易出现。

无论如何,我知道这是一个涉及很深的问题,因此,如果这不适合该网站,我深表歉意。 我只是被困住了。

1 个回复

我相信我有这个工作。 请参阅要点在此处查看解决方案。

1 如何使用循环来抓取R中多个网页的网站数据?

我想应用一个循环来从R中的多个网页中抓取数据。我能够抓取一个网页的数据,但是当我尝试使用多个页面的循环时,我得到一个令人沮丧的错误。 我花了几个小时修补,但没有用。 任何帮助将不胜感激!!! 这有效: 但是,当我尝试在循环中写入它时,我收到一个错误 错误: ...

3 r 中的网页抓取(带循环)

我试图对奥巴马的演讲页面进行网络抓取,以创建诸如 wordclouds 之类的内容。当我尝试为 1、5、10 个不同的页面(演讲)而不是在循环中分别进行时,代码有效。 但是使用我创建的这个循环(上面),结果对象不包含任何内容( NULL )。 有人可以帮帮我好吗? ...

4 使用 for 循环在 R 中抓取网页

我想从这个链接中抓取数据,我已经在 R 中编写了以下代码来做到这一点。 但是,这不起作用并且只返回结果的第一页。 显然,循环不起作用。 有人知道循环出了什么问题吗? ...

5 R 中的网页抓取:为什么我的循环返回 NA?

我之前在这里发布过同样的问题,但另一个线程正在消亡,我越来越绝望。 我正在尝试使用 rvest 等抓取网页。大多数东西都有效,但现在我需要 R 来循环访问链接列表,而它给我的只是 NA。 这是我的代码: 我需要下一个,因为 api 的前两个链接让我直接回到主页 如果我现在打印我的链接,它 ...

6 如何使用 readLines 和 R 中的循环从多个(435)网页获取信息?

我正在尝试从公开的机密网页中获取有关 2018 年美国国会选举的数据。 每个区都有不同的 URL。 在单个 URL 上使用 readLines 为我提供了我正在寻找的输出。 这为我提供了亚利桑那第一区的正确输出: 但是,我想从所有 435 个地区获取所有信息。 我知道我可以手动创建一个 URL ...

7 从R中的网页中抓取多个表

我正在尝试将共同基金数据提取到R中,我的代码方式适用于单个表,但是当网页中有多个表时,它将不起作用。 链接-https: //in.finance.yahoo.com/q/pm?s=115748.BO 我的密码 但我收到一条错误消息。 错误(函数(类(fdef,mt ...

8 如何使用R从网页中检索多个表

我想使用 R 提取所有带有左侧描述的疫苗表及其在表中的描述, 这是网页的链接 这是网页上第一个表格的外观: 我尝试使用 XML 包,但没有成功,我使用了: 我收到一个错误: 这个怎么做? ...

9 使用RVest在R中的多个网页上抓取

我是R的新手,并且一直在进行一些Web抓取。 我编写了以下代码,它将来自https://uk.burberry.com/的特定项目的ID,名称,颜色和价格放入数据框中。 有没有一种创建循环的方法,这样我就可以对网站上的每个项目使用此代码并将结果放入数据框中? 谢谢 ...

10 循环网页R

我想应用一个循环从R中的多个网页抓取数据。我正在运行下一个代码: 但是我有这个信息: 错误:意外的','in:“ for(i in city){url &lt;-(” http://www.washingtongasprices.com/GasPriceSearch.aspx?ty ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM