使用Xpath和Nokogiri选择特定的div元素?

使用Xpath和Nokogiri选择特定的div元素?,xpath,sinatra,nokogiri,Xpath,Sinatra,Nokogiri,我对语法分析比较陌生,希望得到更多的实践。我要分析以下URL: 我想抓住所有标有“努力工作”的引语。这是站点代码的分解: <div class="content"> <div id="siteheader" class="uitext"> <div class="mainContentContainer "> <div class="mainContent"> <div id="premiumAdTop"> <div class=

我对语法分析比较陌生,希望得到更多的实践。我要分析以下URL:

我想抓住所有标有“努力工作”的引语。这是站点代码的分解:

<div class="content">
<div id="siteheader" class="uitext">
<div class="mainContentContainer ">
<div class="mainContent">
<div id="premiumAdTop">
<div class="mainContentFloat">
<div id="flashContainer"> </div>
<div id="connectPrompt" style="">
<img style="float: left; margin: -3px 5px 0px 0px" src="http://s.gr-assets.com/assets/quote/quote_tiny-566b7de5e1ac5becd0dd8b2856f59228.jpg" alt="quote">
<h1>Quotes About Hard Work</h1>
<div class="leftContainer">
<div class="mediumText">
<div class="quote mediumText ">
<div class="quoteDetails ">
<a class="leftAlignedImage" href="/author/show/3916262.Babe_Ruth">
<div class="quoteText">
“It's hard to beat a person who never gives up.”
<br>
―
<a href="/author/show/3916262.Babe_Ruth">Babe Ruth</a>
</div>
但是结果并没有给我想要的结果

我想我应该调用方法
each
collect
,但我不知道如何到达我想要的节点,我相信它包含在这里的某个地方:

<div id="connectPrompt" style="">
<img style="float: left; margin: -3px 5px 0px 0px" src="http://s.gr-assets.com/assets/quote/quote_tiny-566b7de5e1ac5becd0dd8b2856f59228.jpg" alt="quote">
<h1>Quotes About Hard Work</h1>
<div class="leftContainer">
<div class="mediumText">
<div class="quote mediumText ">
<div class="quoteDetails ">
<a class="leftAlignedImage" href="/author/show/3916262.Babe_Ruth">
<div class="quoteText">
“It's hard to beat a person who never gives up.”
<br>
―
<a href="/author/show/3916262.Babe_Ruth">Babe Ruth</a>
</div>

关于艰苦工作的引述
谁能给我指一下正确的方向吗?为了得到我想要的东西,我需要进入div课程多久

您可以使用XPath:

//div[@class = 'quoteText' and following-sibling::div[1][@class = 'quoteFooter' and .//a[@href and normalize-space() =  'hard-work']]]

要选择所有
div
元素,这些元素的类是
quoteText
,后面跟一个
div
,class
quoteFooter
包含一个与
艰苦工作
相关的链接,您说要解析
http://www.goodreads.com/quotes/tag/hard-work
但您的代码会获取
http://www.goodreads.com/quotes
,那么它是哪一个?此外,您不需要指定要从页面中提取的内容–只需引用文本、其周围的即时
div
、引用和作者,其中一个包含
div
s,以及其他内容。你需要更具体一点。嗨,马特!我想从网站www.good.reads.com上提取所有标记为“努力工作”的引文。在我看来,获得该结果的唯一方法是解析。我想要引用和作者的名字。希望有帮助。谢谢你的帮助。嗨,马丁·霍恩!你的反馈帮助很大;非常感谢。没有将所有的引语都标记为“努力工作”,但在第一页上将引语标记为“努力工作”(共5页)。目前正在使用您上面提供的代码,希望对其进行操作,以满足我的需要。再次感谢你的帮助。附言:有关于资源的建议吗?想要经常练习&需要非常熟悉html/css,以便在解析方面变得得体。将投入所需的时间和工作,并将感谢为新手提供的精益求精的资源提示。谢谢你,伙计!
//div[@class = 'quoteText' and following-sibling::div[1][@class = 'quoteFooter' and .//a[@href and normalize-space() =  'hard-work']]]