1

我正在尝试使用 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从 -e:1:in 中单击“for # (NoMethodError) load' from -e:1:in

4

2 回答 2

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 回答
1

您不能“点击”一个 td,部分原因是没有 href 属性。由于下载是使用 javascript 处理的,因此您将无法使用 mechanize 轻松获得它。

于 2012-07-22T03:38:59.957 回答