Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 从网页中提取文本_Xml_R_Parsing_Xpath - Fatal编程技术网

Xml 从网页中提取文本

Xml 从网页中提取文本,xml,r,parsing,xpath,Xml,R,Parsing,Xpath,假设我想从bestbuy.com或walmart.com这样的网站上提取客户评论。假设reviews页面的一个片段如下所示: <div class="BVRRReviewTitleContainer"><span class="BVRRLabel BVRRReviewTitlePrefix"></span> <h2> <span itemprop="name" class="BVRRValue BVRRReviewTitle">Perf

假设我想从bestbuy.com或walmart.com这样的网站上提取客户评论。假设reviews页面的一个片段如下所示:

<div class="BVRRReviewTitleContainer"><span class="BVRRLabel BVRRReviewTitlePrefix"></span> <h2>
<span itemprop="name" class="BVRRValue BVRRReviewTitle">Perfect size for the kids and durable</span> </h2>
<span class="BVRRLabel BVRRReviewTitleSuffix">, </span></div>
<div class="BVRRReviewDateContainer"><span class="BVRRLabel BVRRReviewDatePrefix"></span><span class="BVRRValue BVRRReviewDate">11/22/2013<meta itemprop="datePublished" content="2013-11-22"/></span><span class="BVRRLabel BVRRReviewDateSuffix"></span></div>
<div class="RRBeforeUserContainerSpacer"></div>
<div class="BVRRUserNicknameContainer"><span class="BVRRLabel BVRRUserNicknamePrefix">By </span><span class="BVRRValue BVRRUserNickname"><span itemprop="author" class="BVRRNickname">wilbuh </span></span> <span class="BVRRLabel BVRRUserNicknameSuffix">,</span>
<div class="BVRRUserLocationContainer"><span class="BVRRLabel BVRRUserLocationPrefix"></span><span class="BVRRValue BVRRUserLocation">Oakland, ME</span><span class="BVRRLabel BVRRUserLocationSuffix"></span></div></div>
<div class="BVRROverallRatingContainer" >
<div class="BVRRRatingContainerStar"><div class="BVRRRatingEntry BVRROdd"><div id="BVRRRatingOverall_Review_Display" class="BVRRRating BVRRRatingNormal BVRRRatingOverall"><div class="BVRRLabel BVRRRatingNormalLabel"></div><div class="BVRRRatingNormalImage">
<div class="BVImgOrSprite" style="width:75px;height:15px;overflow:hidden"><img src="http://walmart.ugc.bazaarvoice.com/1336/5_0/9/rating.png" alt="5 out of 5" title="5 out of 5" width="135" height="15" />
</div></div>
<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="BVRRRatingNormalOutOf"> <span itemprop="ratingValue" class="BVRRNumber BVRRRatingNumber">5</span>
<span class="BVRRSeparatorText">out of</span>
<span itemprop="bestRating" class="BVRRNumber BVRRRatingRangeNumber">5</span>
</div></div></div></div> </div>
<div class="RRReviewDisplayStyle2BeforeContentContainerSpacer"></div>
<div class="BVRRReviewDisplayStyle2ContentContainer">
<div class="BVRRReviewTextContainer"><div class="BVRRReviewTextParagraph BVRRReviewTextFirstParagraph BVRRReviewTextLastParagraph"><span itemprop="description" class="BVRRReviewText">Bought this tablet for my kids after I purchased a no name brand and it did not perform well at all. I have the 10.1, and absolutely love it and so this 7&quot; was the perfect compliment to it. Its an amazing tablet, easy to use, and durable for my 5 and 7 year old kids.</span>

适合儿童穿着的完美尺码,经久耐用
, 
11/22/2013
作者:威尔布,
奥克兰,我
5.
从…里面
5.
在我购买了一个无名品牌后,我为我的孩子们买了这款平板电脑,但它的性能一点也不好。我有10.1,绝对喜欢它,所以这7英寸是对它的完美赞美。它是一款神奇的平板电脑,易于使用,对我5岁和7岁的孩子来说很耐用。

是否有可能提取评论标题(“适合孩子的完美尺寸和耐用”)和评论描述(“在我购买了一个无名品牌后为我的孩子购买了这款平板电脑,但它的性能一点也不好。我有10.1,我绝对喜欢它,所以这7款平板电脑是我的。”“这是对它的完美赞美。这是一款神奇的平板电脑,易于使用,对我5岁和7岁的孩子来说很耐用。”)?我正在寻找自动提取所有评论标题和描述的过程。

问题是一个简单的
xpath
练习。但是您的XML文件已损坏。它遗漏了一些“div”“标签。我更正了它,您可以在中找到新版本

库(XML)

doc这个问题是一个简单的
xpath
练习。但您的XML文件已损坏。它缺少一些“div”标记。我更正了它,您可以在中找到新版本

库(XML)

doc这个问题是一个简单的
xpath
练习。但您的XML文件已损坏。它缺少一些“div”标记。我更正了它,您可以在中找到新版本

库(XML)

doc这个问题是一个简单的
xpath
练习。但您的XML文件已损坏。它缺少一些“div”标记。我更正了它,您可以在中找到新版本

库(XML)

doc不知道r是否可以解析html,但我建议您不要在这项任务中使用正则表达式正则表达式对于某些任务来说非常好,但它们有其局限性。如果您想要的是剥离或捕获具有非常清晰的非递归模式的内容,那么您可以使用它。。但是,如果页面是格式良好的XML格式的xhtml,则使用XSLT或XQuery、XPath,因为它们将能够使用数据的结构来实现更智能、更可靠的方式,以获得您想要的内容。您的XML已损坏。使用
XML
package更容易提供带有评论的页面链接来提取数据。当然,使用RegExp可以很好地做到这一点,但这已经足够了。这不是一个R问题,而是一个普通的正则表达式问题——我投票赞成结束它。(@JoshuaUlrich:你提到的帖子是我最喜欢的帖子之一,所以我一直都很喜欢)我不知道R是否能解析html,但我建议你不要在这个任务中使用正则表达式正则表达式正则表达式对于某些任务来说很好,但它们有其局限性。如果您想要的是剥离或捕获具有非常清晰的非递归模式的内容,那么您可以使用它。。但是,如果页面是格式良好的XML格式的xhtml,则使用XSLT或XQuery、XPath,因为它们将能够使用数据的结构来实现更智能、更可靠的方式,以获得您想要的内容。您的XML已损坏。使用
XML
package更容易提供带有评论的页面链接来提取数据。当然,使用RegExp可以很好地做到这一点,但这已经足够了。这不是一个R问题,而是一个普通的正则表达式问题——我投票赞成结束它。(@JoshuaUlrich:你提到的帖子是我最喜欢的帖子之一,所以我一直都很喜欢)我不知道R是否能解析html,但我建议你不要在这个任务中使用正则表达式正则表达式正则表达式对于某些任务来说很好,但它们有其局限性。如果您想要的是剥离或捕获具有非常清晰的非递归模式的内容,那么您可以使用它。。但是,如果页面是格式良好的XML格式的xhtml,则使用XSLT或XQuery、XPath,因为它们将能够使用数据的结构来实现更智能、更可靠的方式,以获得您想要的内容。您的XML已损坏。使用
XML
package更容易提供带有评论的页面链接来提取数据。当然,使用RegExp可以很好地做到这一点,但这已经足够了。这不是一个R问题,而是一个普通的正则表达式问题——我投票赞成结束它。(@JoshuaUlrich:你提到的帖子是我最喜欢的帖子之一,所以我一直都很喜欢)我不知道R是否能解析html,但我建议你不要在这个任务中使用正则表达式正则表达式正则表达式对于某些任务来说很好,但它们有其局限性。如果您想要的是剥离或捕获具有非常清晰的非递归模式的内容,那么您可以使用它。。但是,如果页面是格式良好的XML格式的xhtml,则使用XSLT或XQuery、XPath,因为它们将能够使用数据的结构来实现更智能、更可靠的方式,以获得您想要的内容。您的XML已损坏。使用
XML
package更容易提供带有评论的页面链接来提取数据。当然,使用RegExp可以很好地做到这一点,但这已经足够了。这不是一个R问题,而是一个微不足道的正则表达式问题——我投票赞成结束这个问题。(@JoshuaUlrich:顺便说一句,你提到的帖子是我最喜欢的SO帖子之一)
library(XML)
doc <- xmlParse(file='test.xml')

xpathSApply (doc,'//*[@class="BVRRValue BVRRReviewTitle"]',xmlValue)
[1] "Perfect size for the kids and durable"

xpathSApply (doc,'//*[@class="BVRRReviewTextContainer"]',xmlValue)
[1] "Bought this tablet for my kids after I purchased a no name brand and it 
     did not perform well at all. I have the 10.1, and absolutely 
     love it and so this 7\" was the perfect compliment to it. 
     Its an amazing tablet, easy to use, and durable for my 5 and 7 year old kids."