如何使用 watir for ruby 仅隔离要抓取的某些文本
How do I isolate only certain text to be scraped using watir for ruby
尝试更好地学习 watir / ruby 我正在尝试编写代码以根据曲棍球运动员转到 ebay 列表并搜索卡片,但我只想抓取搜索结果而不是页面的其余部分。有没有办法把它夹在中间,所以我只抓取“保存此搜索”和“结果”之间的文本 eg.below
代码:
require 'watir'
require 'webdrivers'
puts 'Enter a Name: '
name = gets.chomp
puts 'PSA, BGS, or RAW?'
grade = gets.chomp.downcase
if grade == 'raw'
grade = ''
end
browser = Watir::Browser.new
browser.goto('ebay.ca')
browser.wait(5) { browser.text_field.exists? }
browser.text_field.set "#{name} young guns #{grade}"
browser.send_keys :enter
puts browser.text
sleep(3)
保存此搜索
配送至:V1B2C7
2005-06 UPPER DECK #201 SIDNEY CROSBY YOUNG GUNS RC 分级 BGS 9.5“GEM 完好”
全新
1,084.00 美元
剩余时间
还剩 5d 5h(周日,06:55 p.m。)
13 出价
+C $12.99 运费
2005-06 Upper Deck #201 Sidney Crosby Young Guns True Gem BGS 9.5 w/ 10
分中心 9.5 角 9.5 边 9.5 面 10
2,199.95 美元
评价最高的卖家
立即购买
+C $12.00 运费
12个观察者
2005/06 西德尼·克罗斯比 Young Guns #201
新(其他)
C $1,150.00
或最佳报价
+C $20.99 运费
22个观察者
2005-06 Upper Deck #201 Sidney Crosby YG RC Young Guns 请阅读重印
9.99 美元
剩余时间
还剩 16 小时 58 米(星期三,06:18 a.m。)
1 出价
评价最高的卖家
+C $2.99 运费
Conner Mcdavid、Crosby、Matthews、Gretzky、Price、Young Guns Reprints
全新
12.50 美元
剩余时间
3d 7h 离开(星期五,09:01 p.m。)
5 出价
+C $3.00 运费
2005 Upper Deck Young Guns #201 Sidney Crosby RC 新秀 Gem 完好 PSA 10
全新
1,761.76 美元
剩余时间
2d 6h 离开(星期四,07:41 p.m。)
17 出价
评价最高的卖家
+C $49.40 运费
来自美国
提供海关服务和国际追踪
2005 Upper Deck Young Guns #201 Sidney Crosby RC 新秀 Gem 完好 PSA 10
全新
1,829.52 美元
剩余时间
左 2d 6h(星期四,07:40 p.m。)
11 出价
评价最高的卖家
+C $50.52 运费
来自美国
提供海关服务和国际追踪
结果 分页 - 第 1 页
12
每页项目50
每页项目
您可以定位您感兴趣的特定元素。在这种情况下,搜索结果是所有具有 class“sresult”的 li
元素。
因此,您可以通过以下方式获取搜索结果的所有文本:
results = browser.lis(class: 'sresult')
results.each { |r| puts r.text }
这给出了一个非常丑陋的文本块,没有任何关于每段文本是什么的信息——例如标题与价格。最好关注每个结果中的特定元素,以 pull/format 您想要的确切信息:
results.each do |r|
puts "Title: #{r.h3.text}"
puts "Price: #{r.li(class: 'lvprice').text}"
puts
end
尝试更好地学习 watir / ruby 我正在尝试编写代码以根据曲棍球运动员转到 ebay 列表并搜索卡片,但我只想抓取搜索结果而不是页面的其余部分。有没有办法把它夹在中间,所以我只抓取“保存此搜索”和“结果”之间的文本 eg.below
代码:
require 'watir'
require 'webdrivers'
puts 'Enter a Name: '
name = gets.chomp
puts 'PSA, BGS, or RAW?'
grade = gets.chomp.downcase
if grade == 'raw'
grade = ''
end
browser = Watir::Browser.new
browser.goto('ebay.ca')
browser.wait(5) { browser.text_field.exists? }
browser.text_field.set "#{name} young guns #{grade}"
browser.send_keys :enter
puts browser.text
sleep(3)
保存此搜索 配送至:V1B2C7 2005-06 UPPER DECK #201 SIDNEY CROSBY YOUNG GUNS RC 分级 BGS 9.5“GEM 完好” 全新 1,084.00 美元 剩余时间 还剩 5d 5h(周日,06:55 p.m。) 13 出价 +C $12.99 运费 2005-06 Upper Deck #201 Sidney Crosby Young Guns True Gem BGS 9.5 w/ 10 分中心 9.5 角 9.5 边 9.5 面 10 2,199.95 美元 评价最高的卖家 立即购买 +C $12.00 运费 12个观察者 2005/06 西德尼·克罗斯比 Young Guns #201 新(其他) C $1,150.00 或最佳报价 +C $20.99 运费 22个观察者 2005-06 Upper Deck #201 Sidney Crosby YG RC Young Guns 请阅读重印 9.99 美元 剩余时间 还剩 16 小时 58 米(星期三,06:18 a.m。) 1 出价 评价最高的卖家 +C $2.99 运费 Conner Mcdavid、Crosby、Matthews、Gretzky、Price、Young Guns Reprints 全新 12.50 美元 剩余时间 3d 7h 离开(星期五,09:01 p.m。) 5 出价 +C $3.00 运费 2005 Upper Deck Young Guns #201 Sidney Crosby RC 新秀 Gem 完好 PSA 10 全新 1,761.76 美元 剩余时间 2d 6h 离开(星期四,07:41 p.m。) 17 出价 评价最高的卖家 +C $49.40 运费 来自美国 提供海关服务和国际追踪 2005 Upper Deck Young Guns #201 Sidney Crosby RC 新秀 Gem 完好 PSA 10 全新 1,829.52 美元 剩余时间 左 2d 6h(星期四,07:40 p.m。) 11 出价 评价最高的卖家 +C $50.52 运费 来自美国 提供海关服务和国际追踪 结果 分页 - 第 1 页 12 每页项目50 每页项目
您可以定位您感兴趣的特定元素。在这种情况下,搜索结果是所有具有 class“sresult”的 li
元素。
因此,您可以通过以下方式获取搜索结果的所有文本:
results = browser.lis(class: 'sresult')
results.each { |r| puts r.text }
这给出了一个非常丑陋的文本块,没有任何关于每段文本是什么的信息——例如标题与价格。最好关注每个结果中的特定元素,以 pull/format 您想要的确切信息:
results.each do |r|
puts "Title: #{r.h3.text}"
puts "Price: #{r.li(class: 'lvprice').text}"
puts
end