有一段mechanize的教程代码
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
page = agent.get('http://www.google.com.hk/')
google_form = page.form('f')
google_form.q = 'ruby mechanize'
page = agent.submit(google_form)
pp page
这段代码模拟手工在google搜索框中输入ruby mechanize,按下回车键后,得到的搜索结果。
我仔细琢磨了这段代码,重点在google_form.q = 'ruby mechanize',
当你把下面几句输入后,
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
page = agent.get('http://www.google.com.hk/')
可以得到其中一段:
=> #<WWW::Mechanize::Form
{name "f"}
{method "GET"}
{action "/search"}
{fields
#<WWW::Mechanize::Form::Field:0xb73c16b4 @name="hl", @value="zh-CN">
#<WWW::Mechanize::Form::Field:0xb73c12cc @name="source", @value="hp">
#<WWW::Mechanize::Form::Field:0xb73c10d8 @name="ie", @value="GB2312">
#<WWW::Mechanize::Form::Field:0xb73c0b10 @name="q", @value="">}
{radiobuttons}
{checkboxes}
{file_uploads}
{buttons
#<WWW::Mechanize::Form::Button:0xb73c0638
@name="btnG",
@value="Google 搜\347\264\242">
#<WWW::Mechanize::Form::Button:0xb73c03cc
@name="btnI",
@value=" 手气不错\302\240">}>
注意 {name "f"}
#<WWW::Mechanize::Form::Field:0xb73c0b10 @name="q", @value="">}
根据这个线索,写下
google_form = page.form('f')
google_form.q = 'ruby mechanize'
整个模拟google搜索ruby mechanize的代码就出来了,
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
page = agent.get('http://www.google.com.hk/')
google_form = page.form('f')
google_form.q = 'ruby mechanize'
page = agent.submit(google_form)
pp page
现在,我想模拟在http://www.flvcd.com/的搜索框,输入
http://hd.openv.com/tv_play-hddoc_20100607_7217133.html
问题来了,先模拟示范代码的前半部分。
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
page = agent.get('http://www.flvcd.com/')
得到下面的结果
{name "mainform"}
{method "GET"}
{action ""}
{fields
#<WWW::Mechanize::Form::Field:0xb7340bb8 @name="flag", @value="">
#<WWW::Mechanize::Form::Field:0xb734099c @name="format", @value="">
#<WWW::Mechanize::Form::Field:0xb73407d0 @name="kw", @value="">}
{radiobuttons}
{checkboxes}
{file_uploads}
{buttons
#<WWW::Mechanize::Form::Button:0xb7340654
@name="sbt",
@value="开始GO!">}>}>
我只能写出一句
flvform = page.form('mainform')
flvform.? = 'http://hd.openv.com/tv_play-hddoc_20100607_7217133.html'
这个?问号的地方,填写什么都不行,flag,format,kw
请问,如何完成我这个模拟输入的问题?
问题补充:require 'rubygems'
require 'mechanize'
agent = Mechanize.new
page =agent.post('http://forum.ubuntu.org.cn/ucp.php?mode=login&sid=d6179312144b3f8cf843d61b0ba409ca')
uform = page.forms[1]
uform.username = '罗非鱼'
uform.password = 'qwerty'
uform.action = 'http://forum.ubuntu.org.cn/ucp.php?mode=login'
page = agent.submit(uform)
page.save('/home/pt/ubuntu')
我写出了上面的程序,但是运行后,打开/home/pt/ubuntu文件,发现根本就没有模拟登录成功,请您看看。
谢谢
相关推荐
安装完成后,可以开始使用 Mechanize 编写脚本来模拟浏览器操作。例如,下面的代码片段展示了如何打开一个网页,查找特定元素并点击: ```ruby require 'mechanize' agent = Mechanize.new page = agent.get...
让我们深入了解一下Mechanize库的核心功能和使用方法。 首先,Mechanize库提供了一个友好的API,可以方便地打开URL、导航页面和处理HTTP请求。通过`Mechanize.new`创建一个新的实例后,你可以使用`get`方法来访问...
你可以通过`find_form()`找到特定的表单,然后使用`set_field()`设置字段值,最后使用`submit()`来提交表单。 3. **Cookie管理**:它能自动处理服务器返回的cookies,并在后续请求中发送出去,保持会话状态。 4. *...
mechanize模块是一个强大的工具,它提供了模拟浏览器的功能,包括处理表单提交、跟踪cookies和设置代理等。下面我们将详细探讨mechanize模块的使用方法。 首先,引入必要的库: ```python import mechanize import ...
`mechanize`库是一个模拟浏览器行为的库,它可以帮助开发者编写自动化脚本,用于浏览网页、填写表单、点击链接等任务,非常适合进行网页抓取和数据提取。在这个"multi-mechanize-master"项目中,重点是将`mechanize`...
ruby mechanize包,mechanize-2.7.3.gem
- **处理表单**:可以使用`br.forms()`列出所有表单,通过`br.select_form(nr=0)`选择一个表单,并使用`form['key'] = 'value'`设置表单字段。提交表单使用`br.submit()`。 - **导航**:`br.back()`方法用于模拟...
在Python的世界里,mechanize库是一个强大的工具,专为模拟浏览器行为而设计,尤其适用于自动化Web浏览和数据抓取任务。"mechanize-源码.rar"这个压缩包文件包含了mechanize库的源代码,这对于想要深入了解其工作...
ruby mechanize 2.7.2 gem 包
Ruby中实现网页抓取,一般用的是mechanize,使用非常简单。 安装 代码如下: sudo gem install mechanize 抓取网页 代码如下: require ‘rubygems’ require ‘mechanize’ agent = Mechanize.new page = agent.get...
Python Mechanize是一个强大的库,主要用于自动化Web浏览,它在Python编程中扮演着重要角色,尤其在Web...在实际项目中,Python Mechanize常与其他库(如BeautifulSoup、requests等)结合使用,以增强其功能和灵活性。
用python成为顶级黑客,第三方库必备,mechanize网络爬虫
该库模仿了Python的mechanize库,使得Java开发者也能轻松进行网页抓取和模拟浏览器行为。 **mechanize4j的核心功能**: 1. **HTTP交互**:mechanize4j能够发送GET和POST请求,处理表单提交,支持HTTP和HTTPS协议,...
使用mechanize库时,需要注意以下几点: - 它不支持JavaScript,因为它是基于HTTP协议的,无法执行客户端的JavaScript代码。对于依赖JavaScript的网页,可能需要结合其他工具,如Selenium。 - 网站的反爬虫策略:...
**WWW-Mechanize-Chrome** 是一个Perl模块,它扩展了流行的WWW-Mechanize库,使其能够模拟用户在Google Chrome浏览器中的交互行为。这个工具对于自动化网页浏览、数据抓取、测试以及任何需要与网页进行复杂交互的...
1. **初始化**: 脚本首先通过`initialize`方法创建一个新的Mechanize实例,该实例用于模拟浏览器行为。它访问校内网主页并提交登录表单,其中包含用户提供的电子邮件(e)和密码(p)。 ```ruby def initialize(e, ...
机械化描述Mechanize库用于自动与网站进行交互。 Mechanize自动存储和发送Cookie,...开发者使用捆绑程序安装依赖项: bundle install使用以下命令运行所有测试: bundle exec rake test另请参阅Mechanize :: TestCa
The_official_source_code_for_the_python-mechanize__mechanize