草庐IT

mechanical

全部标签

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

ruby - Mechanize 的局限性是什么? mechanize 和 watir 之间的区别是什么

我正在使用mechanize来抓取一些网页。我需要知道什么是Mechanize限制?Mechanize不能做什么?它可以执行网页中嵌入的javascripts吗?我可以用它来调用javascript函数吗?我不认为它可以。我想Watir可以。它和watir有什么区别? 最佳答案 Mechanize可以做很多事情。它使用net/http,所以无论你用net/http能做什么,你都可以用mechanize来做。尽管根据他们的描述它支持更多:TheMechanizelibraryisusedforautomatinginteraction

ruby - 如何在 Ruby 中使用 Mechanize 选择单选按钮?

我正在构建一个爬虫,我正在使用Mechanize。我想点击一个单选按钮。我该怎么做?例如,有两个单选按钮“A”和“B”。该网站自动选择B,但我想在ruby​​中使用Mechanize来选择“A”。我还在Mechanize上使用最新版本。 最佳答案 有几种方法可以做到这一点。可能最好的方法是使用单选按钮的name或id:form.radiobutton_with(:name=>/b/).check你也可以这样做:form.radiobuttons.first.check哪个更简洁,但更容易出错(例如,如果您要更改表单的设计)。