首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将自定义HTML添加到机械化页面对象

如何将自定义HTML添加到机械化页面对象
EN

Stack Overflow用户
提问于 2016-02-02 21:27:43
回答 1查看 219关注 0票数 0

我想知道是否有可能将自定义HTML代码添加到机械化页面对象中。其目的是通过将由javascript代码生成的超文本标记语言添加到机械化页面对象(通过agent.get(uri)方法获取),并让机械化代理点击提交表单,从而避免创建表单的javascript代码,就好像它真的在那里一样。这应该是可能的,因为表单是直接在页面上创建的,没有任何外部调用,除了一个jpeg。我不能使用硒和类似物,我需要坚持使用机械化和Nokogiri。任何帮助甚至指导都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2016-02-03 07:18:15

请看机械化文档中的"Scraping Data“。因为您可以访问和搜索Nokogiri文档,所以可以对其进行修改。

使用Mechanize内部使用的Nokogiri,修改文档很容易:

代码语言:javascript
复制
require 'mechanize'

agent = Mechanize.new
page = agent.get('http://www.example.org')
doc = page.parser
first_p = doc.at('p')
first_p.to_html                          # => "<p>This domain is established to be used for illustrative examples in documents. You may use this\n    domain in examples without prior coordination or asking for permission.</p>"
first_p.children = '
<form action="action_page.php">
First name:<br>
<input type="text" name="firstname" value="First name"><br>
Last name:<br>
<input type="text" name="lastname" value="Last name"><br><br>
<input type="submit" value="Submit">
</form>' 
first_p.to_html                          # => "<p>\n    <form action=\"action_page.php\">\n    First name:<br>\n    <input type=\"text\" name=\"firstname\" value=\"First name\"><br>\n    Last name:<br>\n    <input type=\"text\" name=\"lastname\" value=\"Last name\"><br><br>\n    <input type=\"submit\" value=\"Submit\">\n    </form></p>"

向上看一层,到父级:

代码语言:javascript
复制
page.parser.at('p').parent.to_html # => "<div>\n    <h1>Example Domain</h1>\n    <p>\n    <form action=\"action_page.php\">\n    First name:<br>\n    <input type=\"text\" name=\"firstname\" value=\"First name\"><br>\n    Last name:<br>\n    <input type=\"text\" name=\"lastname\" value=\"Last name\"><br><br>\n    <input type=\"submit\" value=\"Submit\">\n    </form></p>\n    <p><a href=\"http://www.iana.org/domains/example\">More information...</a></p>\n</div>"

是否可以在修改后的HTML中使用Mechanize,这将由您自己决定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35154822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档