go - ajax加载网站内容后的网页抓取

标签 go web-scraping

我正在尝试让 colly 抓取以下页面:https://www56.muenchen.de/termin/index.php?loc=BB .

这是我的代码:

package main

import (
    "fmt"
    "log"

    "github.com/gocolly/colly"
)

func main() {
    c := colly.NewCollector(
        colly.IgnoreRobotsTxt(),
        colly.Async(false),
    )

    c.OnHTML("html", func(e *colly.HTMLElement) {
        fmt.Println(e.Text)
    })

    c.OnError(func(_ *colly.Response, err error) {
        log.Println("Something went wrong:", err)
    })

    c.Visit("https://www56.muenchen.de/termin/index.php?loc=BB")

    c.OnScraped(func(r *colly.Response) {
        fmt.Println("Finished")
    })
}

问题是网站被访问后加载了一些内容。我不确定如何告诉 colly “等待”直到发生这种情况,然后再查看结果。

期待一些想法。

最佳答案

不能,因为 colly 必须做那个客户端,但是 colly does not execute JavaScript - 所以没有 Ajax。

要模拟浏览器,您可以按照上面的链接建议使用 selenium 或 phantomjs。

关于go - ajax加载网站内容后的网页抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57029385/

相关文章:

http - docker如何设法获得200而不是401的返回码

python - Scrapy 提取空 td 值,尽管表中没有空值

javascript - 如何更改 CasperJS 地理定位以进行抓取?

docker - Jenkins Golang 声明性管道 : Build Docker Image and Push to Docker Hub

java - 如何使用 Java 从 html 源代码中解析特定信息

python - 使用Python网络抓取公交车时刻表

python - 使用 scrapy 抓取特定网站时出现 "Too many requests"错误

postgresql - Gorm 和关系

go - 为什么我无法在界面中访问该字段?

pointers - 调用结构函数给出 "cannot refer to unexported field or method"