gpt4 book ai didi

javascript - 如何将自定义 HTML 添加到 Mechanize 页面对象

转载 作者:行者123 更新时间:2023-12-03 07:47:14 25 4
gpt4 key购买 nike

我想知道是否可以将自定义 HTML 代码添加到 Mechanize 页面对象中。目标是避免使用 javascript 代码创建表单,方法是将 javascript 代码生成的 HTML 添加到 mechanize 页面对象(通过 agent.get(uri) 方法获取)并让 mechanize 代理单击提交表单,就像它一样真的在那里。它应该是可能的,因为表单是直接在页面上创建的,除了 jpeg 之外,不需要任何外部调用。我不能使用 Selenium 和类似的东西,我需要坚持使用 Mechanize 和 Nokogiri。任何帮助甚至指导将不胜感激!

最佳答案

查看 Mechanize 文档中的“Scraping Data ”。因为您可以访问和搜索 Nokogiri 文档,所以您可以对其进行修改。

使用 Mechanize 内部使用的 Nokogiri 可以轻松修改文档:

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>"

向上查找一级,到父级:

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>"

是否可以将 Mechanize 与修改后的 HTML 一起使用需要您自己弄清楚。

关于javascript - 如何将自定义 HTML 添加到 Mechanize 页面对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com