草庐IT

mechanical

全部标签

ruby-on-rails - Ruby Mechanize.get(url) 的两种不同语法 - 有什么好处?

这些语法有什么区别?第一个比第二个有什么好处吗?agent=Mechanize.new#firstagent.get(url)do|page|workend#secondpage=agent.get(url)我应该在何时以及为什么使用哪一个? 最佳答案 两种调用get方法的方式最终做的是一样的事情。您可以按照自己喜欢的方式使用它。它允许您传递block的第一种方式可能有助于编写更简洁和/或可读的代码。您可以选择适合您的需要。举个例子;agent=Mechanize.newagent.get(url)do|page|item=page

Ruby Mechanize、Nokogiri 和 Net::HTTP

我正在使用Net::HTTP进行HTTP请求并得到响应:uri=URI("http://www.example.com")http=Net::HTTP.start(uri.host,uri.port,proxy_host,proxy_port)request=Net::HTTP::Get.newuri.request_uriresponse=http.requestrequest#Net::HTTPResponseobjectbody=response.body如果我必须使用Nokogirigem来解析这个HTML响应,我会这样做:nokogiri_obj=Nokogiri::HTML

Ruby Mechanize 获取 href 属性值

我是Ruby的新手,但在爬虫中摸索前行。我正在使用Mechanize,到目前为止它看起来还不错。虽然我现在有点难以捕获一堆链接的href属性。我需要获取href属性,以便我可以打开每个页面并抓取更多信息。这可能吗?这是一个例子。all_results.search("table.mcsResultsTabletr").eachdo|tablerow|installer_link=tablerow.search("td:first-childa").hrefputsinstaller_link+"\n" 最佳答案 这里有一个例子可以帮

ruby-on-rails - Mechanize 和 HTTParty 中的 "Hostname does not match the server certificate"错误

偶尔,当我访问带有HTTPParty或Mechanize的网站时,我会收到此错误:hostname"www.example.com"doesnotmatchtheservercertificate我可以看到thereisaworkaround如果您使用open方法,但我不确定如何利用上述gems。Mechanize的堆栈跟踪:agent=Mechanize.newagent.read_timeout=180agent.open_timeout=180agent.user_agent_alias='MacSafari'agent.redirect_ok=:allagent.follow_

Facebook 中的 ruby Mechanize

我正尝试单击主页上的“设置”按钮,但当我单击时我返回此页面:#}{meta}{titlenil}{iframes}{frames}{links}{forms}>这是..有点空!这些iframe和框架的东西可能有问题吗? 最佳答案 正如roja所提到的,跟随重定向可能是您所需要的。以下是如何执行此操作的示例:@agent=Mechanize.new@agent.redirect_ok=:all@agent.follow_meta_refresh=:anywhere那么您几乎可以忽略涉及重定向的事实-Mechanize只会将您带到结果页

ruby - Mechanize 的 SSL 错误

我在irb上获得了这些命令require'mechanize'agent=Mechanize.newagent.get('https://monabo.lemonde.fr/customer/account/forgotpassword/')我遇到了这个错误:OpenSSL::SSL::SSLError:SSL_connectreturned=1errno=0state=unknownstate:sslv3alerthandshakefailure我在mac上试过,它可以正常工作,但没有出现此错误。但是,它在我的计算机(运行LinuxMint17)上不起作用。我尝试过的:导出这个变量:

ruby - 在 mac 上安装 mechanize 时出现错误

我尝试在我的Mac上安装mechanize,但总是出错。我尝试了网站上给出的所有答案,但没有一个对我有用。我已经尝试过sudogeminstallmechanize,但出现以下错误。Password:Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingmechanize:ERROR:Failedtobuildgemnativeextension.currentdirectory:/Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.8/ext/nokogiri/Syste

ruby - 没有要加载的文件—— Mechanize

代码:Shoes.setupdogem'mechanize'endrequire'rubygems'require'mechanize'跑鞋上面写着:nosuchfiletoload--mechanize 最佳答案 我做到了:sudogeminstallmechanize以下似乎有效:Shoes.setupdogem'mechanize'endrequire'mechanize'上面写着“构建native扩展”并且要花很长时间,但根据hackety.org这似乎是常态. 关于ruby-没

ruby - Mechanize :从多个相同表单中选择正确的提交

我使用Mechanize循环遍历已分页的表格。我对包含多个提交输入的表单有疑问。输入标签用作分页,它们是动态生成的。当我循环浏览需要抓取的页面时,我需要能够选择正确的输入,因为只有其中一个会带我到“下一页”。正确的标签可以通过名称、类、值等不同的属性来识别。但我的问题是,我无法找到如何告诉mechanize使用哪个标签。我试过这个:require'mechanize'require'yaml'url="http://www.somewhere.com"agent=Mechanize.newpage=agent.get(url)loopdoputs"somecontentfromsite

ruby - Mechanize 前/后连接 Hook

使用Mechanize,我需要找到一些方法将请求限制为每秒1个(或每5秒1个,或每分钟2个,等等,关键是找到某种方法来限制请求速率)。搜索,这似乎是开始解决问题的方法:连接前/后Hook。只有我不完全知道如何处理它们或如何处理,我猜测从我的水平和研究我需要做一个lambda或proc说'嘿等一下',似乎足够基本。我的问题基本上是关于如何执行此操作的示例或其他线索。我尝试了几个lambda(而且我对这到底会做什么了解程度很低):@agent.pre_connect_hooks但这只会将我的请求变成错误:ArgumentError:wrongnumberofarguments(2for0)