问题标签 [rcurl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3155 浏览

python - 如何使用 R 抓取填写表格并“点击”链接的网站?

我想对我无法访问的 java 脚本页面的 html 源代码进行网络抓取,而无需在下拉列表中选择一个选项,然后“单击”链接。尽管没有使用过java,但一个简单的例子可以是这样的:

网络抓取该 URL 底部下拉列表中所有可用语言的主要维基百科页面:http: //www.wikipedia.org/

为此,我需要选择一种语言,例如英语,然后在新网址左侧的“主页”链接中“单击”(http://en.wikipedia.org/wiki/Special:Search ?search=&go=Go)。

在这一步之后,我会用英文抓取维基百科主页的 html 源代码。

有没有办法使用 R 来做到这一点?我已经尝试过 RCurl 和 XML 包,但它不适用于 javascript 页面。

如果 R 不可能,谁能告诉我如何用 python 做到这一点?

0 投票
2 回答
12449 浏览

r - RCurl:当站点使用没有 WWW-Authenticate 的 HTTP 401 代码响应时的 HTTP 身份验证

我正在使用RCurl包围绕PiCloud 的 REST API实现一个 R 包装器,以向 API 服务器发出 HTTP(S) 请求。API 使用基本 HTTP 身份验证来验证用户是否具有足够的权限。PiCloud 文档提供了一个使用 api 和使用 curl 进行身份验证的示例:

这完美地工作。将其转换为等效的 RCurl 的命令:

执行此功能,我收到以下错误消息:

更深入地探索这个问题,我发现 curl 命令发出的 HTTP 请求在第一个 GET 命令中包含了 Authorization 字段。

RCurl 不这样做。相反,它首先发送一个没有设置授权字段的 GET 请求。如果它收到 401 错误代码和带有 WWW-Authenticate 字段的响应,它会发送另一个带有 Authorization 字段的 GET 请求。

尽管 HTTP 规范要求返回 401 错误代码的消息包含 WWW-Authenticate 字段,但 PiCloud API 消息却没有。因此,getURL即使设置了 userpwd 选项,RCurl 也永远不会发送带有授权字段集的 GET 请求。因此,身份验证将始终失败。

有没有办法强制 RCurl 在它发送的第一条 GET 消息中设置 Authorization 字段?如果没有,我可以考虑使用其他任何 R 包吗?

0 投票
1 回答
393 浏览

r - 如何在 Google 新闻中找到所有页面(Curl 的用户代理不起作用)?

对于我的项目,我需要获取某个关键字的新闻数量(来自谷歌新闻)的每日统计信息。但问题是通过浏览器获得的结果与通过 RCurl 获得的结果完全不同。似乎我错过了一些选择。应该做什么?非常感谢您提前提供任何提示!

这是代码(不是全部,只是 rcurl 选项),但 DPage 的内容与浏览器显示的内容不同 :( :

0 投票
1 回答
1214 浏览

r - 使用 RCurl 绕过“免责声明页面”,然后进行网络抓取

我有一个像这样的链接,我想从中提取数据RCurl,在此之前有一个免责声明页面,我需要在浏览器中单击它才能评估数据。以前我使用下面的脚本(来自这里)来“绕过”免责声明页面并使用以下方式访问数据RCurl

以前可以用,最近几天就不行了。实际上我对它在做什么的代码不太了解,我想知道我是否必须更改 . 中的某些内容curlOptions,或者重新编写整段代码?

谢谢。

0 投票
1 回答
236 浏览

xml - 获取房地产坐标

我的任务是下载尽可能多的平面销售报价。我有用于下载链接和其他内容的脚本,但我无法获得公寓的坐标(这对我来说至关重要,是我分析的重点)。

坐标在网站上可见(通过检查谷歌地图元素),但在网站源中不可见。

当我使用下面的 R 代码时,我得到一个空列表,如果我使用 XML 或 RCurl 包没有区别。

你认为有可能使用 R 来实现这一点,还是我应该考虑其他编程语言(例如 Python?)

0 投票
2 回答
3264 浏览

r - R:使用 RCurl 和 postForm 检索数据

我正在尝试从网站上抓取一些数据。这是我在 Perl 中通常会做的事情,但我真的很想摆脱 Perl。(我不是在贬低 Perl;它是一个很有价值的工具,但十多年后我仍然在为这门语言苦苦挣扎,这让我很苦恼。)由于我的需求很简单,而且性能对我来说很少成为问题,所以我想将我的网络抓取转移到 R。我知道一些 R,但我从未使用过 RCurl 或类似的库。

任务是抓取一个公开可用数据的数据库。这个问题因为我不知道如何传递参数而变得复杂,因为我只是在查看 JS 源代码并试图找出要包含在 RCurl postForm 请求中的内容。下面的代码不会抛出任何明显的错误,但也不会返回任何有用的东西。

问:我做错了什么?

[已编辑:反映建议的更改,但尚未解决]

使用浏览器时,表单如下所示: 在此处输入图像描述

以上设置返回(在单独的页面上): 在此处输入图像描述

0 投票
1 回答
457 浏览

r - 中文谷歌搜索结果编码

全部

我一直在研究用于谷歌搜索数据挖掘的R程序。
到目前为止,我的代码运行良好,除了繁体中文编码问题。我在linux环境下工作...

因此,我遇到的问题都包含在评论中。

1) 如果不使用htmlParse(),提取的数据无法呈现为可识别的汉字

2)如果我尝试将数据转换为向量(通过应用script <- lapply(url, getURL)),虽然可以使用str_extract_all()方法,但出现编码问题......

另外,这里的中文我指的是繁体中文

任何意见或建议都非常感谢!
提前致谢。

0 投票
2 回答
5793 浏览

r - R:从使用 RCurl 抓取的网页中提取“干净”的 UTF-8 文本

使用 R,我正在尝试抓取网页,将日文文本保存到文件中。最终,这需要扩展以每天处理数百个页面。我已经在 Perl 中有一个可行的解决方案,但我正在尝试将脚本迁移到 R 以减少在多种语言之间切换的认知负担。到目前为止,我还没有成功。相关问题似乎是关于保存 csv 文件的问题和关于将希伯来语写入 HTML 文件的问题。但是,我还没有成功地根据那里的答案拼凑出一个解决方案。编辑:关于 R 的 UTF-8 输出的这个问题也是相关的,但没有得到解决。

这些页面来自雅虎!Japan Finance 和我的 Perl 代码看起来像这样。

这个 Perl 脚本生成一个 CSV 文件,如下面的屏幕截图所示,其中包含可以离线挖掘和操作的正确汉字和假名:

Perl 脚本生成的 CSV 文件

我的 R 代码如下所示。R 脚本不是刚刚给出的 Perl 解决方案的完全副本,因为它不会删除 HTML 并留下文本(这个答案建议使用 R 的方法,但在这种情况下它对我不起作用)而且它没有循环等等,但意图是一样的。

此 R 脚本生成如下屏幕截图所示的输出。基本垃圾。

R 脚本生成的 CSV 文件

我假设 HTML、文本和文件编码的某种组合将允许我在 R 中生成与 Perl 解决方案类似的结果,但我找不到它。我试图抓取的 HTML 页面的标题说图表集是 utf-8,我已将getURL调用和write.table函数中的编码设置为 utf-8,但仅此还不够。

问题 如何使用 R 抓取上述网页并将文本保存为“格式良好”的日文文本中的 CSV,而不是看起来像线条噪音的东西?

编辑:我添加了一个进一步的屏幕截图,以显示当我省略该Encoding步骤时会发生什么。我得到了看起来像 Unicode 代码的东西,但不是字符的图形表示。这可能是某种与语言环境相关的问题,但在完全相同的语言环境中,Perl 脚本确实提供了有用的输出。所以这仍然令人费解。我的会话信息:R 版本 2.15.0 已修补 (2012-05-24 r59442) 平台:i386-pc-mingw32/i386(32 位)语言环境: 1 LC_COLLATE=English_United Kingdom.1252 2 LC_CTYPE=English_United Kingdom.1252
3 LC_MONETARY =English_United Kingdom.1252 4 LC_NUMERIC=C
5 LC_TIME=English_United Kingdom.1252
附加基础包: 1stats graphics grDevices utils datasets methods base

在此处输入图像描述

0 投票
1 回答
3618 浏览

r - 在 R 中更改 Tor 身份

我将 Tor 与 R 结合使用,并希望为每个新请求更改我的 IP。我的代码如下:

我可以通过 Tor 进行连接,但是标记为“不工作”的两条线似乎无法将正确的信号传递到 Tor,因此 IP 保持不变。

问候!

0 投票
4 回答
1532 浏览

r - 如何使用 R 将“空格”转换为“%20”

参考标题,我正在考虑如何将单词之间的空格转换为 %20 。

例如,

怎么做y = I%20Love%20You

非常感谢。