闲时学习了一下Mechanize库。这是一个用于Web自动交互的lib。可以自动存储cookie,重定向,提交表单等等。详细信息参见http://mechanize.rubyforge.org/mechanize/。
作为学习成果,写一个关于开心网组件《大师》的小外挂。闲话少说,献上代码,以抛砖引玉。
登录:
require 'rubygems'
require 'mechanize'
require 'json/pure'
agent=WWW::Mechanize.new
login=agent.get("http://www.kaixin001.com")
f=login.forms.first
f.email="youremail@website.com"
f.password="yourpwd"
f.submit
跳到大师首页,获取可以比武的好友:
pk = agent.get("http://www.kaixin001.com/!pker/index.php?t=50")
div = pk.search("dl/div")[0]
avs = div.search("dd").select {|d|
d.search("div/img")[1][:src].include?("icon_blank.gif") #匹配没有“满”或“师”标记的行
}
和每个好友比武:
#获得每个好友比武的链接
links = avs.collect { |a|
WWW::Mechanize::Page::Link.new(a.search("div/a")[0], agent, pk)
}
current_kungfu = nil #current_kungfu用于存储你的当前武功类别
links.collect {|link|
link.href.to_s.scan(/(\d+)/)[0][0]
}.each {|fid|
#current_kungfu选择你当前最高的武功类别,选择最强的武功自然胜算高嘛:)
if current_kungfu.nil?
selkungfu = agent.get("http://www.kaixin001.com/!pker/!selkungfu.php?fuid=#{fid}")
# f = selkungfu.form("form1")
current_kungfu = selkungfu.body.scan(/value=\"\d+\"/).collect { |input|
input.split("=")[1][1..-2].to_i
}.sort.[](-1)
end
#get pkid 获得一次pk的id参数
pkid_page = agent.post("http://www.kaixin001.com/!pker/!startpk.php",:fuid => fid)
pkid= ::JSON.parse(pkid_page.body)["pkid"]
#
agent.get("http://www.kaixin001.com/!pker/!dopk.php?fuid=#{fid}&pkid=#{pkid}&flag=0&kfid=#{current_kungfu}")
}
退出:
agent.get("http://www.kaixin001.com/login/logout.php")
分享到:
相关推荐
Ruby-Mechanize是一个强大的...总之,Ruby-Mechanize是一个强大而灵活的工具,它极大地简化了Web自动化和爬虫开发的过程。无论是处理简单的页面导航还是执行复杂的交互任务,Mechanize都能帮助开发者高效地完成工作。
Mechanize¶↑docs.seattlerb.org/mechanize github.com/sparklemotion/mechanize描述¶↑Mechanize库用于自动与网站交互。 Mechanize自动存储和发送coo Mechanize¶↑docs.seattlerb.org/mechanize github....
Mechanize 是一个用于自动化 Web 交互的工具,最初是用 Perl 编写的,但在这里我们关注的是其在 Common Lisp 中的实现。这个“mechanize”项目可能是对 Perl 版本的复现或改进,旨在为 Lisp 社区提供相同的 Web 自动...
机械化描述Mechanize库用于自动与网站进行交互。 Mechanize自动存储和发送Cookie,遵循重定向,并可以遵循链接和提交表单。 可以填写和提交表单字段。 机械化还可以将您曾经访问过的站点作为历史记录进行跟踪。依存...
机械化 机械化模块用于自动与网站进行交互。 Mechanize自动存储和发送Cookie,跟随重定向,跟随链接并提交表单。 可以填写和提交表单字段。 机械化还可以将您曾经访问过的站点作为历史记录进行跟踪。入门在根文件夹...
总之,Mechanize是Python Web爬虫和自动化测试领域中不可或缺的工具之一,其强大的功能和易用性使其在处理网站交互任务时具有很高的效率。如果你想要提升这方面的能力,这个“Mechanize相关资料”压缩包将是一份宝贵...
Ruby Mechanize 是一个非常强大的 Ruby 库,用于自动化与网站的交互,比如模拟浏览器操作、填写表单、点击链接等。在使用 Ruby Mechanize 之前,首要任务是正确安装其依赖的 gem 包。以下是对 Ruby Mechanize 安装...
通过使用mechanize,开发者可以编写程序自动执行一系列Web交互,比如登录网站、搜索信息、甚至执行复杂的用户操作流程。这在数据爬取、自动化测试和模拟用户行为的场景中尤为有用。 在源代码中,我们可以看到...
Python Mechanize是一个强大的库,主要用于自动化Web浏览,它在Python编程中扮演着重要角色,尤其在Web爬虫和网页测试领域。Mechanize库模仿浏览器的行为,允许开发者以编程方式与网页交互,如填写表单、点击链接、...
`mechanize`库是一个模拟浏览器行为的库,它可以帮助开发者编写自动化脚本,用于浏览网页、填写表单、点击链接等任务,非常适合进行网页抓取和数据提取。在这个"multi-mechanize-master"项目中,重点是将`mechanize`...
总之,mechanize是Python开发者实现自动化网页交互和爬虫任务的一个强大工具,尤其适用于处理需要登录、表单提交等交互的场景。通过下载并安装mechanize-0.3.2-py2-none-any.whl文件,开发者可以快速地将此库集成到...
**WWW-Mechanize-Chrome** 是一个Perl模块,它扩展了流行的WWW-Mechanize库,使其能够模拟用户在Google Chrome浏览器中...通过学习和掌握这个库,你可以提升你的Web自动化测试和数据抓取能力,节省大量手动操作的时间。
ruby mechanize包,mechanize-2.7.3.gem
标题“使用Perl进行Web / HTTP自动化”涉及到的关键技术领域是使用Perl编程语言来实现网络和HTTP操作的自动化。Perl是一种强大的脚本语言,常用于文本处理、系统管理以及网络编程等任务。在这个主题中,我们将深入...
ruby mechanize 2.7.2 gem 包
**机械师4j(mechanize4j)**是一个基于Java的开源爬虫库,它为Web自动化提供了方便。在编程领域,爬虫是用于自动抓取网页信息的工具,而mechanize4j则是这类工具的一个实现。该库模仿了Python的mechanize库,使得...
首先,作者提到了Robot Framework的一些基础测试库,如selenium-webUI自动化测试、splinter-webUI测试工具等。Selenium是一个用于Web应用程序测试的工具,它可以将测试脚本在多种浏览器上进行自动运行,而splinter是...
用python成为顶级黑客,第三方库必备,mechanize网络爬虫
一个用于自动与网站交互的Python库, MechanicalSoup自动存储和发送cookie,遵循重定向,并可以跟随链接并提交表单。主页 https://mechanicalsoup.readthedocs.io/ 概述 用于自动与网站交互的 Python 库。 ...