1

強力なテキスト複数のリンクを含む Web ページがあり、リンクをクリックすると、複数のリンクを含む別のページにリダイレクトされます。同様に、すべてのリンクには複数のページがあります。すべてのリンクをクリックしたいのですが、最初のリンクスクリプトをクリックすると、リダイレクトされたページのすべてのリンクをクリックする必要があります..リンクをクリックすると、最初のページの2番目のリンクがクリックされるはずですリンクについても同様です。

メイン(最初の)ページのすべてのリンクをクリックできるスクリプトを開発しましたが、アプリケーションのサブページでそれを行う方法がわかりません。早急に元に戻してください。非常に緊急です。

4

1 に答える 1

2

次のような再帰関数を実装するだけです。

def crawl(link)
  browser.goto link

  # gather all links before navigating to next link
  all_links = browser.links.reduce([]) do |memo, link|
    memo << link if link.href =~ /appdomain/ # do not visit external links
    memo
  end

  all_links.each do |link|
    crawl link
  end
end

crawl "http://appdomain.com/"

これはテストされていないコードですが、うまくいくかもしれません:)

また、このコードは、異なる場所から同じパスへのリンクを 2 回クリックすることを回避しません。最適化の余地があります。

仕事に間違ったツールを使用している可能性があります-少なくとも質問を読んだときはそう思われます. 元の問題は何ですか?

于 2012-08-14T18:41:05.873 に答える