楼主: lwwlisa
845 0

[实际应用] r语言爬虫正则表达式请教 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

15%

还不是VIP/贵宾

-

威望
0
论坛币
66245 个
通用积分
2.7000
学术水平
0 点
热心指数
4 点
信用等级
0 点
经验
71067 点
帖子
32
精华
0
在线时间
248 小时
注册时间
2013-4-17
最后登录
2024-7-22

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
从国家统计局网站上对统计公报进行爬取各地市GDP指标数值,碰到正则表达式问题,想请教论坛里高手如何解决 。从字符串提取数值应该如何写正则表达式比较好

统计公告示例:http://www.tjcn.org/tjgb/09sh/35333.html,http://www.tjcn.org/tjgb/03hb/36482.html

开始,在高人指点下成功拿到数据,
url<- "http://www.tjcn.org/tjgb/03hb/36482.html"
           web = read_html(url,encoding="gbk'")
           text =  web %>% html_nodes("div")%>% html_text()
           text = noquote(text)
         text<-grep('市生产总值',text,value=T)
         gdp=gsub('(.+)(市生产总值完成)([0-9]+.[0-9]+)(.+)',"\\3",text)
        gdp=gdp[1]  
但后来发现不是所有的地市都这么写“全年全市生产总值完成3224.0亿元”,不同地市写法差别很大:
全年实现上海市生产总值(GDP)30133.86亿元
全市生产总值实现1506.01亿元,
全市生产总值实现1506.01亿元,
还有地市不提供具体数值,“全市生产总值按可比价格计算比上年增长5.5%”。
于是先后改成以下几种形式, 都没有成功。
gdp=gsub'(.+)(市生产总值+)([0-9]+.[0-9]+)(亿元+)',"\\3",text)  
gdp=gsub('(.*市.*生产总值.+)([0-9]+\.[0-9]+亿元)(.+)',"\\2",text)
gdp=gsub('(.*市.*生产总值.+)([[0-9](4}.[0-9]*亿元)(.+)',"\\2",text)  

失败结果
[1] "初步核算,全年全市生产总值完成3224.0亿元,比上年增长6.7%。其中,第一产业增加值349.8亿元,增长2.0%;第二产业增加值1107.5亿元,增长3.3%;第三产业增加值1766.7亿元,增长10.1%。三次产业结构为10.8:34.4:54.8。全市人均生产总值34374元,比上年增长6.3%。"
[2] "全市民营经济增加值完成2218.1亿元,比上年增长7.2%,占全市生产总值的比重为68.8%,提高0.8个百分点。"   

   
二维码

扫码加我 拉你入群

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

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

关键词:正则表达式 表达式 R语言 国家统计局网站 国家统计局网

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 14:50