goquery-将标签与后面的标签连接

绿色浣熊23

有关某些背景信息,我是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>

我想:

  1. 提取内容<h1..."text"
  2. 将此提取的内容插入(并连接)到的内容中<p..."text"
  3. 只有做到这一点的<p>那个标签紧跟<h1>标签。
  4. 这样做对所有的的<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>

像这样从代码开始,

package main

import (
    "fmt"
    "strings"
    "github.com/PuerkitoBio/goquery"
)

func main() {
    html_code := strings.NewReader(`code_example_above`)
    doc, _ := goquery.NewDocumentFromReader(html_code)

我知道我可以阅读<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")

^此命令在第一种情况(更接近我想要的)之前插入每个情况下的内容<h1..."text" <p..."text"

我也尝试过使用goquery'sEach()函数,但无法更接近该方法想要的功能(尽管我敢肯定有一种方法可以使用它Each(),对吗?)

我最大的问题是我不知道如何将的每个实例<h1..."text"<p..."text"紧随其后实例相关联

如果有帮助,<h1..."text"总是<p..."text"在我尝试解析的网页上跟随

我的大脑没水了。有任何Go天才知道如何做并且愿意解释吗?提前致谢。

编辑

我发现了我可以做的其他事情:

doc.Find("h1").Each(func(i int, s *goquery.Selection) {
    nex := s.Next().Text()
    fmt.Println(s.Text(), nex, "\n\n")
})

^这会打印出我想要的内容-的每个实例的内容,<h1..."text"然后是它的直接实例<p..."text"我原以为s.Next()会输出的下一个实例<h1>,但在接下来的标签输出doc--the *goquery.Selection,它的迭代通过。那是对的吗?

或者,mattn如前所述,我也可以使用doc.Find("h1+p")

我仍然无法附加<h1..."text"<p..."text"我将其发布为另一个问题,因为您可以将其分解为多个问题,并且Mattn已经回答了一个问题。

马特恩

我不知道您在用goquery编写代码。但是也许,您期望的是邻居选择器。

h1+p

这将返回在邻居中具有p标签的h1标签。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用goQuery按ID搜索标签

来自分类Dev

标签后面的运动图像

来自分类Dev

goquery-从一个html标签提取文本并将其添加到下一个标签

来自分类Dev

自封标签后面的玉内容

来自分类Dev

木偶-单击文本后面的标签

来自分类Dev

偏移html元素/标签后面的背景

来自分类Dev

在表格后面的图层上绘制标签

来自分类Dev

移除标签栏时删除标签后面的空白

来自分类Dev

移除标签栏时删除标签后面的空白

来自分类Dev

包装在标签中时,将触发后面的Click事件

来自分类Dev

将XAML“标签”绑定到Xamarin.Forms中“ public const”后面的代码?

来自分类Dev

Asp.net-将Textbox字段更改为gridview中位于标签后面的代码

来自分类Dev

包装在标签中时,将触发后面的Click事件

来自分类Dev

如何爆发goquery Go中的每个循环

来自分类Dev

GoQuery选择提取器不起作用

来自分类Dev

使用goquery提取元描述字段

来自分类Dev

WPF:当tabItems居中时,更改TabControl的标签后面的背景

来自分类Dev

如何从后面的C#代码中选择jQuery标签?

来自分类Dev

如何从后面的代码中的回调函数更新标签?

来自分类Dev

我想在页面后面的代码中访问标签值

来自分类Dev

如何打开离子标签后面的模式[IONIC 4]

来自分类Dev

从后面的代码为GridView内部的标签分配值

来自分类Dev

在后面的代码中获取li标签的值

来自分类Dev

选择 <p> 标签后面的所有 <h2>

来自分类Dev

H1 标签文本后面的行

来自分类Dev

使用goquery查找其值包含空格的类

来自分类Dev

视图分页器中隐藏在标签栏后面的片段

来自分类Dev

当我选择UITableViewCell时,我的视图控制器标签是后面的动作

来自分类Dev

在itemTemplate中查找标签并从后面的代码中绑定数据

Related 相关文章

  1. 1

    使用goQuery按ID搜索标签

  2. 2

    标签后面的运动图像

  3. 3

    goquery-从一个html标签提取文本并将其添加到下一个标签

  4. 4

    自封标签后面的玉内容

  5. 5

    木偶-单击文本后面的标签

  6. 6

    偏移html元素/标签后面的背景

  7. 7

    在表格后面的图层上绘制标签

  8. 8

    移除标签栏时删除标签后面的空白

  9. 9

    移除标签栏时删除标签后面的空白

  10. 10

    包装在标签中时,将触发后面的Click事件

  11. 11

    将XAML“标签”绑定到Xamarin.Forms中“ public const”后面的代码?

  12. 12

    Asp.net-将Textbox字段更改为gridview中位于标签后面的代码

  13. 13

    包装在标签中时,将触发后面的Click事件

  14. 14

    如何爆发goquery Go中的每个循环

  15. 15

    GoQuery选择提取器不起作用

  16. 16

    使用goquery提取元描述字段

  17. 17

    WPF:当tabItems居中时,更改TabControl的标签后面的背景

  18. 18

    如何从后面的C#代码中选择jQuery标签?

  19. 19

    如何从后面的代码中的回调函数更新标签?

  20. 20

    我想在页面后面的代码中访问标签值

  21. 21

    如何打开离子标签后面的模式[IONIC 4]

  22. 22

    从后面的代码为GridView内部的标签分配值

  23. 23

    在后面的代码中获取li标签的值

  24. 24

    选择 <p> 标签后面的所有 <h2>

  25. 25

    H1 标签文本后面的行

  26. 26

    使用goquery查找其值包含空格的类

  27. 27

    视图分页器中隐藏在标签栏后面的片段

  28. 28

    当我选择UITableViewCell时,我的视图控制器标签是后面的动作

  29. 29

    在itemTemplate中查找标签并从后面的代码中绑定数据

热门标签

归档