解析结果
Parsing Watir Results
我正在使用 Watir
从已发布的项目中获取数据,单个页面上有 12 个。结构如下所示,我希望显示 12 个项目,很像 Nokogiri
解析结果的方式。我正在使用 :css 获取它的方式,或者直接 browser.div,但结果不是我所期望的。
这与 Nokogiri
抓取元素的方式有何不同?我假设 Watir
以相同的方式完成此操作。然后我需要遍历这些项目以获取它们的数据。我正在搜索 class itemContainer,它涵盖了页面上的所有 12 种产品。
如何获得 div 数组?
## HTML
<div data-jplist-item="" class="itemSpace">
<div class="itemContainer">
<a href="/en/Products/All/Tipless Chine" target="_blank" title="Click here to learn more about this product">
<div class="name itemName">Alpha<span style="display:none;">boat part, DELTAUPDATE</span></div>
<div class="saleDiscount" style="display:none;">25.575</div>
<div class="itemNo" style="display:none;">1711</div>
<div class="saleNote">SALE</div></a>
</div>
</div>
<div data-jplist-item="" class="itemSpace">
<div class="itemContainer">
<a href="/en/Products/All/Something" target="_blank" title="Click here to learn more about this product">
<div class="name itemName">Bravo<span style="display:none;">boat part</span></div>
<div class="saleDiscount" style="display:none;">300</div>
<div class="itemNo" style="display:none;">584</div>
<div class="saleNote">SALE</div></a>
</div>
</div>
<div data-jplist-item="" class="itemSpace">
<div class="itemContainer">
<a href="/en/Products/All/Something Else" target="_blank" title="Click here to learn more about this product">
<div class="name itemName">Charlie<span style="display:none;">boat part</span></div>
<div class="saleDiscount" style="display:none;">600</div>
<div class="itemNo" style="display:none;">413</div>
<div class="saleNote">SALE</div></a>
</div>
</div>
## code
##### a is the browser
item = a.div(class: "itemContainer")
ap item.inspect
puts item.class
## result
"#<Watir::Div: located: false; {:class=>\"itemSpace\", :tag_name=>\"div\"}>"
Watir::Div
我不清楚你的问题。但是我在这里打印了 link 标题和第一部分文本。
b.divs(class: 'itemContainer').each do |div|
p div.a.title
p div.a.div.text
end
输出
"Click here to learn more about this product"
"Alpha"
"Click here to learn more about this product"
"Bravo"
"Click here to learn more about this product"
"Charlie"
我正在使用 Watir
从已发布的项目中获取数据,单个页面上有 12 个。结构如下所示,我希望显示 12 个项目,很像 Nokogiri
解析结果的方式。我正在使用 :css 获取它的方式,或者直接 browser.div,但结果不是我所期望的。
这与 Nokogiri
抓取元素的方式有何不同?我假设 Watir
以相同的方式完成此操作。然后我需要遍历这些项目以获取它们的数据。我正在搜索 class itemContainer,它涵盖了页面上的所有 12 种产品。
如何获得 div 数组?
## HTML
<div data-jplist-item="" class="itemSpace">
<div class="itemContainer">
<a href="/en/Products/All/Tipless Chine" target="_blank" title="Click here to learn more about this product">
<div class="name itemName">Alpha<span style="display:none;">boat part, DELTAUPDATE</span></div>
<div class="saleDiscount" style="display:none;">25.575</div>
<div class="itemNo" style="display:none;">1711</div>
<div class="saleNote">SALE</div></a>
</div>
</div>
<div data-jplist-item="" class="itemSpace">
<div class="itemContainer">
<a href="/en/Products/All/Something" target="_blank" title="Click here to learn more about this product">
<div class="name itemName">Bravo<span style="display:none;">boat part</span></div>
<div class="saleDiscount" style="display:none;">300</div>
<div class="itemNo" style="display:none;">584</div>
<div class="saleNote">SALE</div></a>
</div>
</div>
<div data-jplist-item="" class="itemSpace">
<div class="itemContainer">
<a href="/en/Products/All/Something Else" target="_blank" title="Click here to learn more about this product">
<div class="name itemName">Charlie<span style="display:none;">boat part</span></div>
<div class="saleDiscount" style="display:none;">600</div>
<div class="itemNo" style="display:none;">413</div>
<div class="saleNote">SALE</div></a>
</div>
</div>
## code
##### a is the browser
item = a.div(class: "itemContainer")
ap item.inspect
puts item.class
## result
"#<Watir::Div: located: false; {:class=>\"itemSpace\", :tag_name=>\"div\"}>"
Watir::Div
我不清楚你的问题。但是我在这里打印了 link 标题和第一部分文本。
b.divs(class: 'itemContainer').each do |div|
p div.a.title
p div.a.div.text
end
输出
"Click here to learn more about this product"
"Alpha"
"Click here to learn more about this product"
"Bravo"
"Click here to learn more about this product"
"Charlie"