【问题标题】:html_session, read_html, readLines, GET, getURL all freezehtml_session、read_html、readLines、GET、getURL 全部冻结
【发布时间】:2018-09-08 22:30:42
【问题描述】:

几个月来我一直能够阅读此页面,但从周三开始,它就停止了。

myURL <- "http://www.nasdaq.com/symbol/fb"
webpage <- readLines(myURL)

我试过了:

  1. read_html (rvest)
  2. html_session (rvest) 也重置用户代理 - 没有变化。
  3. readLines 这曾经是我所需要的。现在它像其他所有方法一样冻结。
  4. GET (httr)
  5. getURL (RCurl)
  6. 通过 Windows 机器上的 R studio 和直接在 Ubuntu 服务器上的 R 中尝试了所有这些。到处都结冰。
  7. 浏览了网络选项卡上的 Chrome 开发人员工具,试图了解为什么它可以在浏览器中轻松加载,而不是在 R 中。我没有看到任何确凿证据,但我不是专家。李>

如果有人能弄清楚如何在不冻结页面的情况下获取页面,那么这就是我摆脱困境所需的全部帮助。谢谢!

【问题讨论】:

  • 你能分享你使用的代码吗?
  • 已编辑以显示 readLines() 示例。这是最简单的情况,但 RCurl、httr 和 rvest 方法也会冻结。
  • 没有足够的信息来调试这个。您最终可能会与他们的robots policy 发生冲突,从而导致 IP 禁令。您可能位于具有最近更改的规则集的透明代理或防火墙后面。您可能有一个站点不喜欢响应的默认用户代理。您的系统可能有主机文件更改或 pwnd。需要适当的调试协议来提供进一步帮助。
  • 是的,这可能是机器人的问题,但我已经尝试了几个 IP,所以如果他们有我的 ID,那不是 IP。

标签: r web-scraping rvest rcurl httr


【解决方案1】:

我不确定您要收集网页的哪些部分,但我已使用此代码成功获取了一些重要信息:

library(rvest)
library(dplyr)
url <- "https://www.nasdaq.com/symbol/fb"
read_html(url) -> foo
html_nodes(foo, css = "b") %>% html_text()

你能运行上面的代码吗?它能给你你所需要的吗?根据您需要来自网站的哪些数据,您可能需要使用 SelectorGadget 之类的工具来查找所需的 css 值。

我希望这会有所帮助。如果不是,请详细说明。

【讨论】:

  • 冻结在“read_html(url) -> foo”行。我在我的带有 Rstudio 的 windows 盒子上和在 linux 服务器上的 R shell 中都试过这个。结果相同。
  • 您使用“冻结”这个词是什么意思?以上适用于我在 MacBook Pro 上。
猜你喜欢
  • 1970-01-01
  • 2020-02-01
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
相关资源
最近更新 更多