Ich arbeite an einem Skript zum Crawlen einer Seite von Suchergebnissen und ich habe eine Schleife erstellt, um das richtige Suchergebnis zu finden, und das funktioniert. Das Problem, auf das ich stoße, ist, dass jede Permutation, die versucht, auf den Link innerhalb des LI-Elements zu klicken, nicht funktioniert. Zuerst habe ich versucht, den Anker innerhalb der LI zu finden, aber es ist ein Nokogiri-Objekt, ich habe versucht, in @page
auszugehen und auf das richtige Element zu bohren, aber es kommt nil zurück.Klicken Sie auf Link in .each Schleife in Ruby Mechanize
Gibt es eine Möglichkeit, innerhalb des LI-Elements zu suchen, auf das ich bereits hingebohrt habe?
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")
Relevent LI Element (I Fremd Code ausgeschnitten, die nicht relevant schien, kann ich mehr hinzufügen, wenn notwendig, ich habe einfach nicht über Post wollen)
<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&thn=1&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>
Können Sie weitere Einzelheiten darüber angeben, wie es nicht funktioniert? Sehen Sie bestimmte Fehler? Wenn nicht, welches Ergebnis willst du bekommen und was gibt es dir jetzt? –
@StevenSchobert Es kommt derzeit NIL zurück. Diese Version des Codes ist, wo mir die Ideen ausgegangen sind, ich würde es vorziehen, nicht zu '@page' zu gehen, weil ich die Schwierigkeit durchbohre, bis zum richtigen LI-Element zu bohren und ich nicht herausfinden kann, wie ich finde die Verknüpfung innerhalb nur dieses Elements und klicken Sie darauf. –
Willkommen bei Stack Overflow. Bitte lesen Sie "[ask]" und die verlinkten Seiten und "[mcve]". Sie bitten uns, sich den HTML-Code vorzustellen, mit dem Sie navigieren möchten. Reduzieren Sie es stattdessen auf das absolute Mindestmaß und fügen Sie es der entsprechend formatierten Frage hinzu. Das wird uns helfen, aus dem gleichen Input wie Sie zu arbeiten. Erstellen Sie außerdem den Mindestcode neu, der das Problem mithilfe dieses HTML veranschaulicht. Momentan hat deine Frage Code, der nichts zu tun hat und wir müssen HTML zusammenbauen, um zu testen, was unsere Zeit verschwendet. –