楼主: Smithereer
2530 2

[问答] r语言 抓取网页乱码问题求助 [推广有奖]

  • 0关注
  • 0粉丝

大专生

1%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
618 点
帖子
14
精华
0
在线时间
51 小时
注册时间
2014-11-25
最后登录
2019-10-24

楼主
Smithereer 学生认证  发表于 2016-8-29 11:28:28 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
程序为:
library(RCurl)
library(XML)


url <- 'http://bbs.tianya.cn/post-free-5568048-1.shtml'
xpath <- '//div[@class=\"bbs-content clearfix\"]'
##注意,此处默认认为每次只有一个数据满足条件,所以程序中只用了[[1]]
html_value <- function(url,xpath){
  webpage <- getURL(url)
  webpage <- readLines(tc <- textConnection(webpage)); close(tc)
  pagetree <- htmlTreeParse(webpage,encoding="utf-8", useInternalNodes=TRUE)
  value <- getNodeSet(pagetree,xpath)
  ##i <- length(value)                     ##统计满足条件的值个数,一般情况为1
  value <- xmlValue(value[[1]])
  return(value)
}
结果为:
> html_value(url,xpath)
[1] "\n\t\t\t\t\t\t\t¡¡¡¡Îò·¢ÏÖ£¬óßÂÛμÄá|á¿êÇÎTÇîμÄ£¬èç1ûûóDÇ¿′óμÄóßÂÛÑ1á|£¬Dìóñóñê¼t1à¼ÆóÖ2»áËáËÖ®áË¡£¡¡¡¡Õa′Îê¼tÏ£íûóD1Ø2¿ÃŽè′Ë»ú»á£¬¶Ô¾ßìåDDòμ½øDDÕû¶ù£¬ÔeèÎμ½èË£¬ò»2éμ½μ×£¬2»ÄüèÃÎT1¼μÄêüo|ÕßÔaêüμıˉ¾çÖØÑY¡£¶øÎòÃÇμÄÕt¸®Dèòa×öμÄ£¬¾í2»½ö½öêǼල¶½′ùÄÇÃ′¼òμ¥¡£¡¡¡¡êμ¼êéÏ′ó¼ò×DϸÏëò»Ïë·¢ÏÖ£¬°Y½eÖ÷òåμÄê¢DDêÇÔì3éĿǰéç»á3ó¶ñÏÖÏó×ìéúμÄÎÂ′2£¬èËèËÏòÇ®¿′£¬2»1Ëàñòåá®3ü£¬ÖD»aÃñ×弸ǧÄêμÄμàμÂ1Ûé¥ê§′ù¾¡£¬àÏÅÆ×ê±¾Ö÷òå¶¼×Ôà¢2»è磬ÇòĿǰμÄ×′¿öè′μ½áËóÖóú·¢2»¿éêÕê°μÄμØ2½¡£¡¡¡¡Ë×»°Ë죬ÂòêàóÃÖØμ䣬Ëäè»ÏÖÔú2»Äü3ÆÎaÂòêà£¬μ«¶Ôóú′ËÖÖ2»ÕyÖ®·ç£¬ò2Dèòaíõáaé½μú¶t3öà′Ö÷3Ö1«μàáË¡£\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t"

怎么解决呢?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言 Library BRARY Rcurl Curl 网页

沙发
jiangbeilu 学生认证  发表于 2016-8-29 16:24:00
  1. > html_value <- function(url,xpath){
  2. ## webpage <- getURL(url)
  3. ##  webpage <- readLines(tc <- textConnection(webpage)); close(tc)
  4.    pagetree <- htmlTreeParse(url,useInternalNodes=TRUE)
  5.   # pagetree <- htmlTreeParse(webpage,encoding="utf-8", useInternalNodes=TRUE)
  6.    value <- getNodeSet(pagetree,xpath)
  7.    ##i <- length(value)                     ##统计满足条件的值个数,一般情况为1
  8.    value <- xmlValue(value[[1]])
  9.    value <- gsub("\\r|\\n|\\t","",value)
  10.    return(value)
  11. }
  12. > html_value(url,xpath)
  13. [1] "  我发现,舆论的力量是无穷的,如果没有强大的舆论压力,徐玉玉事件估计又不了了之了。  这次事件希望有关部门借此机会,对具体行业进行整顿,责任到人,一查到底,不能让无辜的受害者遭受的悲剧重演。而我们的ZF需要做的,就不仅仅是监督督促那么简单。  实际上大家仔细想一想发现,拜金主义的盛行是造成目前社会丑恶现象滋生的温床,人人向钱看,不顾礼义廉耻,中华民族几千年的道德观丧失殆尽,老牌资本主义都自愧不如,且目前的状况却到了又愈发不可收拾的地步。  俗话说,乱世用重典,虽然现在不能称为乱世,但对于此种不正之风,也需要王岐山第二出来主持公道了。"
  14. >
复制代码

上面的代码,就可以完成了,其实可能不需要指定编码。htmlTreeParse本身就可以用url作直接的参数来解析页面的。

藤椅
Smithereer 学生认证  发表于 2016-9-1 15:22:38
jiangbeilu 发表于 2016-8-29 16:24
上面的代码,就可以完成了,其实可能不需要指定编码。htmlTreeParse本身就可以用url作直接的参数来解析页 ...
十分感谢~

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 12:18