亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 gocolly 抓取時如何在 html 表格單元格中保留換行符

使用 gocolly 抓取時如何在 html 表格單元格中保留換行符

Go
HUH函數 2023-03-29 17:22:13
當我提取單元格的內容時,我試圖保留<td>表格單元格中的格式。如果 中有兩行文本(例如地址),代碼可能如下所示: <td>address line1 <br>1 address line2</td>當 colly 提取這個時,我得到以下信息:address line1address line2沒有空格或換行符,因為所有 html 都已從文本中刪除。我該如何解決/解決這個問題,以便我從<td>
查看完整描述

2 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

gocollygoquery在引擎蓋下使用。您可以調用所有Selection方法,包括Html()。

func (*Selection) HTML

func (s *Selection) Html() (ret string, e error)

Html 獲取匹配元素集中第一個元素的 HTML 內容。它包括文本和注釋節點。

這是獲取 html 內容的方法:

c.OnHTML("tr", func(e *colly.HTMLElement) {

? ? // You can find the elem

? ? h, _ := e.DOM.Find("td").Html()

? ? fmt.Printf("=> %s \n", h)



? ? // ...or you can loop thru all of them

? ? elem.DOM.Each(func(_ int, s *goquery.Selection) {

? ? ? ? h, _ := s.Html()

? ? ? ? fmt.Printf("=> %s \n", h)

? ? })

}


查看完整回答
反對 回復 2023-03-29
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

據我所知,gocolly 不支持這種格式,但您基本上可以通過使用htmlquery(gocolly 在內部使用它)包的OutputHTML方法來執行如下操作

const htmlPage = `

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

?"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

? <head>

? ? <title>Your page title here</title>

? </head>

? <body>

? ? <p>

? ? AddressLine 1?

? ? <br>

? ? AddresLine 2

? ? </p>

? </body>

</html>

`


doc, _ := htmlquery.Parse(strings.NewReader(htmlPage))

xmlNode := htmlquery.FindOne(doc, "http://p")

result := htmlquery.OutputHTML(xmlNode, false)

結果變量的輸出現在如下所示:


?AddressLine 1

? ?<br/>

?AddresLine 2

您現在可以通過標記解析結果<br/>并獲得您想要的結果。


但我也是新手,所以也許有更好的方法來做到這一點。


查看完整回答
反對 回復 2023-03-29
  • 2 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號