javascript - 抓取外部网站但返回 "You must use a JavaScript capable browser with this site."错误

标签 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) 我可以为 scraper 打开 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]}>

最佳答案

要以编程方式与需要 Javascript 来实现核心功能的页面进行交互,您需要使用“ headless 浏览器”。

您应该查看Watir , Seleniumphantomjs .

关于javascript - 抓取外部网站但返回 "You must use a JavaScript capable browser with this site."错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28071251/

相关文章:

javascript - 渲染部分只是渲染来自ajax的字符串

ruby-on-rails - 安全地将数据从 Controller 传递到 Controller

javascript - 无法使用 '$setPristine' 重置表单

javascript - 将 jQuery 应用到由 ajax 加载的 HTML 元素

ruby-on-rails - Rails 中带有动态内容的侧边栏的设计模式

Ruby 递归函数

ruby - 如何在 ruby​​ 中交错数组中的元素?

javascript - Ember.js: native 输入类型 ="number"绑定(bind)在约束值时中断

javascript - 在发送 ajax 同步请求之前显示 html 元素

jquery - 使用 file_field 元素的 Rails 嵌套表单