草庐IT

mechanism

全部标签

ruby - 使用 Ruby Mechanize 下载文件

我正在尝试使用mechanize保存文件。我包含的脚本使我能够下载名称正确但没有内容的文件。关于我可能做错了什么的任何想法?这是我正在使用的资源。http://www.rubydoc.info/gems/mechanize/Mechanize/File任何帮助都会很棒!谢谢!require'mechanize'uri=URI'http://website.com/page.html'file=Mechanize::File.newuri,nil,''filename=file.saveputsfilename 最佳答案 mecha=

ruby - 使用 Ruby WWW::Mechanize 时忽略 Iconv::IllegalSequence

我在使用mechanize库时在某些网页上遇到了Iconv::IllegalSequence错误。有没有办法让Mechanize只是忽略错误编码的字符并返回“剪切”页面?我知道relatedthread,但我宁愿丢弃页面上的一些字符,然后重新实现编码猜测。时间差 最佳答案 解决办法是把util.rb中的第40行改成Iconv.iconv(code,"UTF-8",s).join("")到Iconv.iconv("#{code}//IGNORE","UTF-8",s).join("")或Iconv.conv("#{code}//IGN

ruby - 如何从 Mechanize::Page 的搜索方法中获取 Mechanize 对象?

我正在尝试抓取一个只能依靠类和元素层次结构来找到正确节点的站点。但是使用Mechanize::Page#search返回Nokogiri::XML::Element,我不能用它来填写和提交表单等。我真的很想使用纯CSS选择器,但是使用各种_with方法匹配类似乎也非常简单。但是,与简单地使用CSS选择器相比,匹配:not(.class)之类的东西非常冗长,而我不知道如何匹配元素层次结构。有没有办法将Nokogiri元素转换回Mechanize对象,或者甚至更好地直接从search方法中获取它们? 最佳答案 如前所述inthisans

ruby - 如何使用 Ruby Mechanize 设置 POST 请求的主体?

如何使用RubyMechanizegem设置POST请求的主体。我知道你能做到mechanize.post(url,query,headers)但我想用JSON字符串设置POST请求的主体。那可能吗?因此,类似于jQuery中的类似内容:$.ajax({type:'POST',url:'myurl',data:"{'key1':'value1','key2':'value2'}",...}); 最佳答案 我不太喜欢您在评论中链接到的答案,因为它使用了to_json()这是一种rails方法,并且您问题的标签并不表示您的问题与rail

ruby - 在 Ruby 中使用 Mechanize 的 SelectList

我正在尝试使用MechanizewithRuby设置选择列表的值。我可以导航到带有选择列表的页面,使用.form方法抓取表单,然后找到选择列表。report_form=page.form('form1')ppreport_form.field_with(:name=>"report_type")正确返回正确的对象。但是,我仍然无法设置该字段的值!我试过:report_form.field_with(:name=>"report_type").options.first.selectreport_form.field_with(:name=>"report_type").options[

ruby - 如何单击 Mechanize 和 Nokogiri 中的链接?

我正在使用Mechanize抓取Google电子钱包的订单数据。我正在从第一页捕获所有数据,但是,我需要自动链接到后续页面以获取更多信息。#purchaseOrderPager-pagerNextButton将移动到下一页,这样我就可以选择更多记录进行捕获。该元素看起来像这样。我需要点击它才能继续。但是,当我尝试以下操作时出现错误:next_page=@orders_page.search("#purchaseOrderPager-pagerNextButton")next_page.click错误:undefinedmethod`click'for#(NoMethodError)

ruby-on-rails - 无法使用带有 Mechanize 的表单登录

我正在尝试使用mechanize提交表单。但是提交时没有任何反应。我刚刚再次获得登录页面。形式:http://affilate.mikkelsenmedia.dk/partnersystem/mylogins.phprequire'Mechanize'agent=WWW::Mechanize.newagent.get("http://affilate.mikkelsenmedia.dk/partnersystem/mylogins.php")form=agent.page.forms.firstform.username='username'form.password='passwor

ruby - Mechanize 和重定向( ruby )

我认为mechanize默认遵循重定向......我的脚本在重定向页面结束。我该如何处理?require'rubygems'require'mechanize'agent=WWW::Mechanize.newpage=agent.get("http://www.vbulletin.org/forum/index.php")login_form=page.form_with(:action=>'login.php?do=login')login_form['vb_login_username']='username'login_form['vb_login_password']=''lo

ruby - 调节/速率限制 ruby Mechanize

我需要调节Mechanize实例与API连接的频率(每2秒一次,因此将连接限制在这个或更多)所以这样:instance.pre_connect_hooks我原以为这会起作用,但现在该类中的每个方法都会休眠2秒,就好像Mechanize实例被触摸并被告知保持2秒一样。我打算尝试一个postconnectHook,但很明显我需要一些更详细的东西,但我现在不知道是什么。代码是更多的解释,所以如果你有兴趣跟随:https://github.com/blueblank/reddit_modbot,否则我的问题涉及如何有效地将Mechanize实例的速率限制在API指定的特定时间范围内(超过该限制

ruby - 无法使用 Ruby Mechanize 登录亚马逊

我正在尝试使用RubygemMechanize登录Amazon。我总是在没有任何错误消息的情况下被踢回登录页面。我想知道这是否是Mechanize的错误,或者亚马逊是否阻止了这种访问。我有下面的代码,您可以进行irb测试。@mechanizer=Mechanize.new@mechanizer.user_agent_alias='MacSafari'@page=@mechanizer.get("https://www.amazon.com/ap/signin?_encoding=UTF8&openid.assoc_handle=usflex&openid.return_to=https