代码拉取完成,页面将自动刷新
package emailscraper
import (
"context"
"fmt"
"time"
"github.com/chromedp/chromedp"
"github.com/gocolly/colly"
)
func initiateScrapingFromChrome(response *colly.Response, timeout int) error {
opts := []chromedp.ExecAllocatorOption{
// nolint:lll // allow longer line here
chromedp.UserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3830.0 Safari/537.36"),
// nolint:gomnd // allow magic number here
chromedp.WindowSize(1920, 1080),
chromedp.NoFirstRun,
chromedp.Headless,
chromedp.DisableGPU,
}
ctx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
defer cancel()
ctx, cancel = chromedp.NewContext(ctx)
defer cancel()
if timeout > 0 {
ctx, cancel = context.WithTimeout(ctx, time.Duration(timeout)*time.Second)
defer cancel()
}
var res string
if err := chromedp.Run(ctx, chromedp.Navigate(response.Request.URL.String()),
chromedp.InnerHTML("html", &res), // Scrape whole rendered page
); err != nil {
return fmt.Errorf("executing chromedp: %w", err)
}
response.Body = []byte(res)
return nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。