为了账号安全,请及时绑定邮箱和手机立即绑定

Go - 从具有已知结构的文档中获取单个特定 HTML 元素的文本

Go - 从具有已知结构的文档中获取单个特定 HTML 元素的文本

Go
倚天杖 2021-07-26 06:07:14
在我正在编写的一个小脚本中,我向 Web 服务发出一个 POST 请求并接收一个 HTML 文档作为响应。除了单个textarea. 这textarea是textarea页面中唯一的,它有一个name我提前知道的特别之处。我想抓取该文本而不用担心文档中的任何其他内容。目前我正在使用正则表达式来获取正确的行,然后删除标签,但我觉得可能有更好的方法。这是文档的样子:<html><body><form name="query" action="http://www.example.net/action.php" method="post">    <textarea type="text" name="nameiknow"/>The text I want</textarea>    <div id="button">        <input type="submit" value="Submit" />    </div></form></body></html>这是我目前获取文本的方式:s := string(body)// Gets the line I wantr, _ := regexp.Compile("<textarea.*name=(\"|')nameiknow(\"|').*textarea>")s = r.FindString(s)// Deletes the tagsr, _ = regexp.Compile("<[^>]*>")s = r.ReplaceAllString(s, "")我认为在这种情况下使用完整的 HTML 解析器可能有点太多了,这就是我朝这个方向前进的原因,尽管我知道那里有更好的东西。我感谢您的任何建议。
查看完整描述

2 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

虽然这不是使用正则表达式解析 HTML的最佳实践。但如你所愿,这里是:

(<textarea\b[^>]*\bname\s*=\s*(?:\"|')\s*nameiknow\s*(?:\"|')[^<]*<\/textarea>)


查看完整回答
反对 回复 2021-08-02
  • 2 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信