我有一个用python编写的Mechanize脚本,它填写了一个网络表单,应该点击“创建”按钮。但是有一个问题,表单有两个按钮。一个用于“添加附件”,一个用于“创建”。两者都是“提交”类型,附加按钮是列出的第一个按钮。因此,当我选择论坛并执行br.submit()时,它会单击“附加”按钮而不是“创建”。广泛的谷歌搜索对于选择表单中的特定按钮没有任何用处。有谁知道跳过第一个“提交”按钮并单击第二个的任何方法? 最佳答案 我尝试使用nr参数,但没有任何运气。我能够让它与名称和标签参数的组合一起使用,其中“标签”似乎对应于HTML中的“值
我试图让mechanize从页面中选择一个表单,但有问题的表单在html中没有“名称”属性。我应该怎么办?当我尝试使用时br.select_form(name="")我收到错误,没有使用该名称声明任何表单,并且该函数需要名称输入。页面上只有一个表单,我可以通过其他方式选择该表单吗? 最佳答案 试试:br.select_form(nr=0)选择第一个表单在Mechanizesource,defselect_form(self,name=None,predicate=None,nr=None):"""...nr,ifsupplied,i
好的,所以我需要使用Python下载一些网页并快速调查我的选项。包含在Python中:urllib-在我看来,我应该改用urllib2。urllib不支持cookie,仅支持HTTP/FTP/本地文件(无SSL)urllib2-完整的HTTP/FTP客户端,支持cookies等最需要的东西,不支持所有的HTTP动词(只有GET和POST,没有TRACE等)功能齐全:mechanize-可以使用/保存Firefox/IEcookie,采取跟随第二个链接等操作,积极维护(2011年3月发布的0.2.5)PycURL-支持curl所做的一切(FTP、FTPS、HTTP、HTTPS、GOPHE
我正在运行一个将在我的本地主机上打开的脚本。我的本地服务器是一个易受攻击的Web应用程序测试套件。我正在尝试从JavaScript警报中确认XSS弹出窗口。例如:http://127.0.0.1:65412/v?=0.2alert("TEST");我需要使用Mechanize或Nokogiri确认弹出窗口的发生。是否可以通过Nokogiri或Mechanize确认弹出窗口存在?例如:defpage(site)Nokogiri::HTML(RestClient.get(site))endputspage('http://127.0.0.1:65412/v?=0.2alert("TEST"
将Mechanize与Ruby结合使用我使用agent.get('http://example.com/foo.torrent')获取某个文件,使用FileUtils或其他方式,如何保存该文件到我的硬盘驱动器(例如,在运行脚本的目录中)?附言class=>WWW::Mechanize::File 最佳答案 嗯,WWW::Mechanize::File有一个save_as实例方法,所以我想这样的事情可能会起作用:agent.get('http://example.com/foo.torrent').save_as'a_file_nam
这些语法有什么区别?第一个比第二个有什么好处吗?agent=Mechanize.new#firstagent.get(url)do|page|workend#secondpage=agent.get(url)我应该在何时以及为什么使用哪一个? 最佳答案 两种调用get方法的方式最终做的是一样的事情。您可以按照自己喜欢的方式使用它。它允许您传递block的第一种方式可能有助于编写更简洁和/或可读的代码。您可以选择适合您的需要。举个例子;agent=Mechanize.newagent.get(url)do|page|item=page
我正在使用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属性。我需要获取href属性,以便我可以打开每个页面并抓取更多信息。这可能吗?这是一个例子。all_results.search("table.mcsResultsTabletr").eachdo|tablerow|installer_link=tablerow.search("td:first-childa").hrefputsinstaller_link+"\n" 最佳答案 这里有一个例子可以帮
偶尔,当我访问带有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_
我正尝试单击主页上的“设置”按钮,但当我单击时我返回此页面:#}{meta}{titlenil}{iframes}{frames}{links}{forms}>这是..有点空!这些iframe和框架的东西可能有问题吗? 最佳答案 正如roja所提到的,跟随重定向可能是您所需要的。以下是如何执行此操作的示例:@agent=Mechanize.new@agent.redirect_ok=:all@agent.follow_meta_refresh=:anywhere那么您几乎可以忽略涉及重定向的事实-Mechanize只会将您带到结果页