class ScraperController < ApplicationController
def show
mechanize = Mechanize.new
website = mechanize.get('https://website.com/')
$max = 2
$counter = 0
$link_to_click = 2
@names = []
while $counter <= $max do
@names.push(website.css('.memName').text.strip)
website.link_with(:text => '2').text.strip.click
$link_to_click += 1
$counter += 1
end
end
end
Ich versuche 20 Artikel abkratzen jeder Seite und dann unten auf den Link klicken (1, 2, 3, 4, 5 usw.). Allerdings erhalte ich den Fehler, wie ich im Titel sehe, der mir sagt, dass ich nicht auf die Zeichenfolge klicken kann. Es erkennt also, dass der Button "2" existiert, sagt mir aber, ob ich nicht darauf klicken kann. Im Idealfall wollte ich nach der Sortierung die Variable $ link_to_click verwenden, um die "2" zu ersetzen, so dass sie jedes Mal erhöht wird, aber immer als Null zurückkommt. Ich habe es auch zu .to_s mit dem gleichen Ergebnis geändert.nicht definierte Methode SiehöreneinKlicken für ‚2‘: String, Rails Fehler bei der Verwendung von Mechanize
Wenn ich den Klick alle zusammen entferne, wird es die gleiche Seite 3 Mal schaben, anstatt auf die nächste Seite zu gehen. Ich habe auch den text.strip Teil vor dem .click entfernt und es wird dasselbe tun. Ich habe viele Varianten ausprobiert, aber kein Glück gehabt.
Ich würde wirklich jeden Rat, den Sie anbieten könnten, schätzen.
(1) Warum sind Sie Globals verwenden? (2) 'String # strip' gibt einen String zurück und string's haben keine 'click' Methoden, was erwarten Sie' website.link_with (: text =>' 2 '). Text.strip.click' zu tun? –
@muistooshort Ich habe beide ausprobiert (aus Verzweiflung, die nie gut ist), wenn ich diese website.link_with (: text => $ link_to_click) .click' oder 'website.link_with (: text => 2) .click mache 'Ergebnis in der Fehler _undefined Methode' klicken Sie auf 'für Nil: NilClass_ – Brandon
Das sagt Ihnen, dass es nicht den Link finden Sie suchen, richtig? –