1

サイトhttp://www.radiojavan.com/mp3s/mp3/Aamin-SarbazからRuby と Mechanize で曲をダウンロードしようとしています。「Download MP3」がありますが、調べてみるとリンクではなく td です。

agent = Mechanize.new
agent.pluggable_parser.default = Mechanize::FileSaver
download_page = agent.get('http://www.radiojavan.com/mp3s/mp3/Aamin-Sarbaz')

ブラウザでこれをナビゲートすると、リンクのようにクリックできます。しかし、コードではこれは要素です。この td 要素をクリックするには?

私が試してみると:

download_page.search('div#download_mp3 table tr td')[1].click.save_as 'proba.mp3'

エラーが発生します: <top (required)>': undefined methodclick' for # (NoMethodError) from -e:1:in load' from -e:1:in'

4

2 に答える 2

1

href 属性がないこともあり、td を「クリック」することはできません。ダウンロードはjavascriptで処理するため、mechanizeで簡単に取得することはできません。

于 2012-07-22T03:38:59.957 に答える
1

私が与える 1 つの提案は、firerbug をダウンロードし、html セクションを使用して td 要素を検査し、Xpath のコピーを右クリックすると、次のような結果が得られます。

/html/body/div[4]/div[2]/div/div[2]/div/table/tbody/tr/td/div/a[2] 

うまくいけば、これはあなたが必要とするものです。

于 2012-07-21T16:05:36.803 に答える