对于一些背景信息,我是 Go 的新手(3 或 4 天),但我开始习惯了。我正在尝试用于goquery解析网页。(最终我想将一些数据放入数据库中)。对于我的问题,一个例子将是解释它的最简单方法:<html> <body> <h1> <span class="text">Go </span> </h1> <p> <span class="text">totally </span> <span class="post">kicks </span> </p> <p> <span class="text">hacks </span> <span class="post">its </span> </p> <h1> <span class="text">debugger </span> </h1> <p> <span class="text">should </span> <span class="post">be </span> </p> <p> <span class="text">called </span> <span class="post">ogle </span> </p> <h3> <span class="statement">true</span> </h3> </body><html>我想:提取内容<h1..."text"。将此提取的内容插入(并连接)到<p..."text".仅对紧跟在标签之后的<p>标签执行此操作。<h1>这样做对所有的的<h1>页面上的标签。所以这就是我想要的样子:<html> <body> <p> <span class="text">Go totally </span> <span class="post">kicks </span> </p> <p> <span class="text">hacks </span> <span class="post">its </span> </p> <p> <span class="text">debugger should </span> <span class="post">be </span> </p> <p> <span class="text">called </span> <span class="post">ogle</span> </p> <h3> <span class="statement">true</span> </h3> </body><html>我知道我可以阅读<h1..."text":h3_tag := doc.Find("h3 .text")我也知道,我可以添加的内容<h1..."text",以内容<p..."text"与此:doc.Find("p .text").Before("h3 .text")^但这命令插入从内容的每一个的情况下,<h1..."text"之前的每一个的情况下<p..."text"。然后,我发现了如何更接近我想要的:doc.Find("p .text").First().Before("h3 .text")^此命令仅在第一个case of (这更接近我想要的)之前插入来自每个单个case of的内容。<h1..."text" <p..."text"我也尝试过使用goquery'sEach()函数,但是我无法通过该方法更接近我想要的东西(尽管我确定有一种方法可以使用Each(),对吗?)我最大的问题是我无法弄清楚如何将每个实例<h1..."text"与<p..."text"紧随其后的实例相关联。如果有帮助,<h1..."text"是永远其次<p..."text"在网页上,我试图解析。我的脑子没水了。有没有围棋天才知道如何做到这一点并愿意解释它?提前致谢。
- 1 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消