2013-11-25 36 views
0

提取类别ID和类别标签假设我有以下几个环节:从URL中基于R

<a class=\"MainCategory\"href=\"/cp/3951?povid=cat1070145-env172199-moduleA080112-lLinkGNAV_Electronics_Computers\">Computers</a> 
<a href=\"/browse/electronics/desktop-computers/3944_3951_132982/?_refineresult=true&catNavId=3951&povid=cat1070145-env172199-moduleA080112-lLinkGNAV_Electronics_Computers_Desktops\">Desktops</a> 
<a href=\"/cp/Laptops/1089430?povid=cat1070145-env172199-moduleA080112-lLinkGNAV_Electronics_Computers_Laptops\">Laptops</a> 

是否有一个自动化的方法来提取以下ID:3951,132982 & 1089430及其相应的标签:电脑,台式机和笔记本电脑?

+0

你为什么不提供使用一些例如URL和然后告诉我们你想如何输出看起来像?包括你已经尝试过的东西。 – nograpes

+0

对不起,我只是格式化HTML标记。 – user2939375

+0

如果你有像下面这样的任意数据,并且ID总是在不同的地方,那么它会更复杂。 – hwnd

回答

0

如果您的网址是类似以下

vec <- c("<a class=\"MainCategory\"href=\"/cp/3951?povid=cat1070145-env172199-moduleA080112-lLinkGNAV_Electronics_Computers\">Computers</a>", 
     "<a href=\"/browse/electronics/desktop-computers/3944_3951_132982/?_refineresult=true&catNavId=3951&povid=cat1070145-env172199-moduleA080112-lLin kGNAV_Electronics_Computers_Desktops\">Desktops</a>", 
     "<a href=\"/cp/Laptops/1089430?povid=cat1070145-env172199-moduleA080112-lLinkGNAV_Electronics_Computers_Laptops\">Laptops</a>") 

向量可以使用正则表达式来提取信息:

data.frame(ID = sub(".*[0-9]+_[0-9]+_([0-9]+).*", "\\1", 
        sub(".*[^0-9]([0-9]+)\\?povid.*", "\\1", vec)), 
      Label = sub(".*>(.*)</a>$", "\\1", vec)) 

#  ID  Label 
# 1 3951 Computers 
# 2 132982 Desktops 
# 3 1089430 Laptops 
+0

也许你应该提到使用正则表达式来提取HTML属性不是一个好主意...... – agstudy