我需要抓取一个我感兴趣的标签的网站:
<script type="myjson">
[{"class": "companyname", "location"....and so on
</script>
目前我正在使用以下代码片段完成工作(goquery):
doc.Find("script").Each(func(i int, element *goquery.Selection) {
_, exists := element.Attr("type")
if exists {
var filepath string
filepath = "mypath"
file, err := os.Create(filepath)
if err != nil {
panic("COULD NOT CREATE FILE")
}
file.WriteString(element.Text())
fmt.Println(element.Text())
file.Close()
这段代码的问题是,虽然 element.Text() 被正确打印到标准输出(它打印一个长切片,里面有几个 json,我需要打印到一个文件以供以后工作),但 file.WriteString 语句不打印文件中的任何内容。该文件仍然是空的。
看来我的查询是错误的,它输出了 2 个元素;第一个长度为零,这是打印到文件的内容,第二个是实际内容,打印到标准输出但不打印到文件。
您能否建议对我的代码进行更正,以便将内容正确打印到文件中?我猜我的 goquery 查询中可能有错误。