刮擦外部网站但返回"您必须在此网站上使用支持JavaScript的浏览器。"错误

时间:2015-01-21 15:45:38

标签: javascript ruby-on-rails ruby web-scraping

我在Ruby on Rails中使用rake任务。我有一个网站,我需要登录才能抓住网站。我填写了表格。

form[:login] = user_name
form[:pw] = password
form.submit

这会返回错误

#<Mechanize::Page
 {url
  #<URI::HTTPS:0x007fa36a0037b8 URL:https://pulse2.com/system/JSAuth/NoScript.html>}
 {meta_refresh}
 {title "You must use a JavaScript capable browser with this site."}
 {iframes}
 {frames}
 {links}
 {forms}>

这很奇怪,因为a)我可以为剪贴板打开JS功能吗b)这是网站本身的问题吗?

[编辑]更多信息。当我看到表格时,它看起来像这样。需要注意的一点是{action“/system/JSAuth/NoScript.html”}。我相信这就是我无法提交行动的原因。有没有办法解决这个问题?

#<Mechanize::Form
   {name "mainform"}
   {method "POST"}
   {action "/system/JSAuth/NoScript.html"}
   {fields
    [hidden:0x3fc5b7d7d8b0 type: hidden name: referer value: ]
    [hidden:0x3fc5b7d7d75c type: hidden name: VerLoginAttempt value: 1]
    [hidden:0x3fc5b7d7d608 type: hidden name: FormName value: LoginMain]
    [text:0x3fc5b7d7d4b4 type: text name: VerLoginID value: ]
    [field:0x3fc5b7d7d360 type: password name: VerPassword value: ]}
   {radiobuttons}
   {checkboxes
    [checkbox:0x3fc5b7d7d234 type: checkbox name: RCRememberMe value: false]}
   {file_uploads}
   {buttons [submit:0x3fc5b7d7d090 type: submit name:  value: Login]}>

1 个答案:

答案 0 :(得分:1)

要以编程方式与需要使用Javascript进行核心功能的网页进行互动,您需要使用“无头浏览器”。

您应该查看WatirSeleniumphantomjs