机械化表单提交



我有一个我试图使用机械化的网站。当我提交表格时,表格将以以下格式提交:https://www.website.com/login/options?returnurl = some_form_options(如果我在浏览器中输入该URL,它会将我发送到一个不错的错误页面,说不存在请求的页面)

,尽管我从网站提交表格,但返回的URL将具有以下格式:https://www.website.com/topic/country/list_of_form_options

该网站的登录表格没有必要填写以提交搜索查询。

任何想法,为什么我会得到不同的URL,以机械化提交相同的形式?以及如何对抗?我无法处理"机械化"表格后得到的URL。

谢谢!

您可以找到要提交的确切表格,然后提交,如果您无法找到路径,那么即使您也可以使用机械化添加表单字段并提交该表单。这是我在项目中使用的代码。

我已经为此任务创建了一个耙子任务:

namespace :test_namespace do
    task :mytask => [:environment] do
      site = "http://www.website.com/search/search.aspx?term=search term"
      # prepare user agent
      ua = Mechanize.new
      page = ua.get("#{site}")
      while (true)
        page.search("//div[@class='resultsNoBackground']").each do |res|
          puts res.at("table").at('tr').at('td').text
          link_text =res.at_css('strong').at('a').text
          link_href = res.at_css('strong').at('a')['href']
          link_href ="http://www.website.com"+link_href
          page_content=''
          res.css('span').each do |ss|
            ss.css('strong').remove
            page_content=ss.text.gsub(/Vi.*s)/, '')
          end
          # puts "HERE IS THE SUMMMER ......#{content_summery}"
         end
        if page.search("#ctl00_ContentPlaceHolder1_ctrlResults_gvResults_ctl01_lbNext").count > 0
          form = page.forms.first
          form.add_field! "__EVENTTARGET", "ctl00$ContentPlaceHolder1$ctrlResults$gvResults$ctl01$lbNext"
          form.add_field! "__EVENTARGUMENT", ""
          page = form.submit
        else
          break
        end
      end
    end
end

相关内容

  • 没有找到相关文章

最新更新