我正在尝试使用Ruby和Mechanize从网站http://www.radiojavan.com/mp3s/mp3/Aamin-Sarbaz下载歌曲。有一个'下载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 method
点击'for#(NoMethodError)
来自-e:1:load'
from -e:1:in
'
答案 0 :(得分:1)
我要给出的一个建议是下载firerbug,然后使用html部分检查td元素右键单击一个副本Xpath,它会给你这样的东西:
/html/body/div[4]/div[2]/div/div[2]/div/table/tbody/tr/td/div/a[2]
希望这将是你所需要的。
答案 1 :(得分:1)
您无法点击&#39;一个td,部分是因为没有href属性。因为下载是使用javascript处理的,所以您无法通过机械化轻松获得下载。