处理包含其他语言符号的URL

时间:2017-09-22 16:00:41

标签: r encoding web-scraping

我正在开发一个网络抓取工具项目,该项目通过“RedditExtractoR”R-package从Reddit收集数据。 该软件包允许通过搜索查询获取帖子的URL。然后我从每个网址的帖子中获取内容。

问题是某些URL包含来自其他语言的符号,R无法正确处理。

例如,波纹管URL返回错误: “http://www.reddit.com/r/Barca/comments/4g4fmp/match_thread_fc_barcelona_vs_sporting_de_gij \ 363n /”

TlbExp.exe

原始网址为:https://www.reddit.com/r/Barca/comments/4g4fmp/match_thread_fc_barcelona_vs_sporting_de_gijón/

据我所知,存在一些编码问题。 R无法处理此URL字符串,因为其中包含“ó”符号,该符号由R重新编码为“\ 363n”。

那么,如何更改编码以正确处理R?

中的这种URL

1 个答案:

答案 0 :(得分:0)

我不知道你是否介意使用一个软件包,但urltools似乎是一个很好的起点。

library(urltools)
some_url <- "https://www.reddit.com/r/Barca/comments/4g4fmp/match_thread_fc_barcelona_vs_sporting_de_gijón/"
# it could be also a vector of url's
puny_decode(some_url)

给出了结果:

[1] "https://www.reddit.com/r/Barca/comments/4g4fmp/match_thread_fc_barcelona_vs_sporting_de_gij\xf3n/"

如果我将其复制到浏览器,它会给我一个正确的页面。

对于有关URLencode()的误导性评论感到抱歉,但这似乎很有希望,但是它不能处理utf字符。