gpt4 book ai didi

ruby - 单击 Ruby Mechanize 中 .each 循环内的链接

转载 作者:行者123 更新时间:2023-12-04 16:21:19 26 4
gpt4 key购买 nike

我正在编写一个脚本来抓取搜索结果页面,并且我创建了一个循环来查找正确的搜索结果并且有效。我遇到的问题是,尝试单击 LI 元素内的链接的每个排列都不起作用。起初我尝试在 LI 中找到 anchor ,但它是一个 nokogiri 对象,我尝试进入 @page并深入到正确的元素,但它返回零。

有没有办法在我已经深入研究的 LI 元素中进行搜索?

require 'mechanize'
require 'nokogiri'
require 'csv'

@agent = Mechanize.new do |agent|
agent.user_agent_alias = 'Mac Safari'
end
@page = @agent.get('https://www.milwaukeetool.com/search-results?FullTextKeywords=48-42-5540')

def resultsPageSearcher (searchText)
@page.search('#results ul > li').each do |li|
results_sku = li.css('span.results-sku').text
if results_sku == searchText
link = @page.link_with(:text => results_sku)
@page = link.click
end
end
end

resultsPageSearcher("48-42-5540")

相关 LI 元素(我删掉了看起来不相关的无关代码,如有必要我可以添加更多我只是不想发布过多)
<li>
<a href="/accessories/cutting/48-42-5540" class="results-image">
<img src="//cdn.milwaukeetool.com/~/media/Images/Accessories/Cutting/48-42-5540/21867_48-42-5540.jpg?h=100&amp;thn=1&amp;w=100" alt=""></a>
<a class="results-title" href="/accessories/cutting/48-42-5540">4" 10 TPI High-Carbon Steel Jig Saw Blade (5 PK)</a>
<span class="results-sku">48-42-5540</span>
</li>

最佳答案

所以前几天我发现了一个非常酷的库,我认为它可以帮助你解决这个问题。它将转到您提供的链接,然后搜索包含您想要的文本的链接并单击它。如果您对此有任何疑问,请告诉我。

require 'watir'
require 'headless'
require 'csv'

headless = Headless.new
headless.start
browser = Watir::Browser.new
browser.goto('https://www.milwaukeetool.com/search-results?FullTextKeywords=48-42-5540')
browser.link(text: searchText).when_present.click

关于ruby - 单击 Ruby Mechanize 中 .each 循环内的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39517705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com