当前位置: 首页 > 知识库问答 >
问题:

Nokogiri和Xpath查询

云联
2023-03-14
//div[@class='listing_content'][#{i}]/div/div/h3/a/text()

这个问题给出了正确的节点,但是所有的节点都同时给出了。

还有当i>1时,它什么也不返回?

for i in (1...30)
  name = page.xpath("//div[@class='listing_content'][#{i}]/div/div/h3/a/text()")
  puts "this is name"
  puts name

  #Get Business phone
  phone = page.xpath("//div[@class='listing_content'][#{i}]//span[@class='business-phone phone']/text()")
  puts "this is phone"
  puts phone

  #Get Business website(if any)
  puts "this is website"
  website = page.xpath("//div[@class='listing_content'][#{i}]//li[@class='website-feature']//@href")
  puts website
end

共有1个答案

岳正阳
2023-03-14

而且当i>1时,它什么也不返回?

这是XPath中第二多的FAQ:

使用:

(//div[@class='listing_content'])[#{i}]/div/div/h3/a/text()
 类似资料:
  • Aaron Patterson和Mike Dalessio开发了一个新的Ruby解析HTML/XML的ruby库 - Nokogiri。他的速度比目前应用的最广泛的Hpricot还要快许多。经过Benchmark测试表明,Nokogiri在加载XML文档的速度是Hpricot的7倍,在XPATH搜索的速度是Hpricot的5倍,而在CSS选择器的搜索上面是Hpricot的1.62倍。 因此Noko

  • 错误:NoSuChelementException:没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“//td[@class='c($PrimaryColor)W(51%)']”}(会话信息:chrome=77.0.3865.120) 我的代码如下: 这是我试图从“https://finance.yahoo.com/quote/goog?p=goog”中搜索

  • 请帮帮我。实际上,我想使用XPath在selenium中查找元素定位器,因为id是自动生成的(页面刷新时id总是更改)。但是XPath也总是发生变化。以下是XPath定位器: 实际上,我已经尝试使用: html/body/div[滚动菜单]/div/div[1]/div/table[1]/tbody[2]/tr[1]/td/div/nobr div本身有唯一的类名滚动菜单。但它不起作用。它总是给出

  • 问题内容: 我正在使用Java XML DSig API签名XML文档的一部分。我试图了解它是如何达到Digest值的。 我的文件是: 我的xpath表达式是: 我试图做的是: 调用Java DSIG库并查看生成的摘要的值。 使用MessageDigest(SHA-1)类可消化值“ bar”。 验证1和2中的摘要是否匹配。 当我这样做时,1和2会产生不同的摘要值。我对DSIG代码的处理完全不对,或

  • 问题内容: 我想使用API使用XPATH在父节点内定位一个节点。我以为这会让我回到父母那边。但是,它将返回我在整个DOM树中找到的第一个。我使用了错误的XPATH吗? 我也曾尝试使用XPATH,但这确实会返回任何东西。 谢谢。 更新: 给定下面的HTML,我想为子标题和子日期定义一个定位器,并使用WebElement.findElement()API对其进行定位,而不管父级是“ // a / li