欢迎光临
我们一直在努力

go语言学习例子No.37-chromedp爬取某讯网视频

谷歌搜索某讯m3u8获取就能搜到很多

我这里选这个

https://github.com/nilaoda/N_m3u8DL-CLI/issues/11

javascript:prompt(PLAYER._DownloadMonitor.context.dataset.title,PLAYER._DownloadMonitor.context.dataset.currentVideoUrl);

上面这一段直接在F12的console里执行能显示m3u8的地址

那就简单了,用chromedp模拟执行js代码就好了

package main

import (
	"context"
	"fmt"
	"log"

	"github.com/chromedp/cdproto/network"
	"github.com/chromedp/chromedp"
)

func main() {
	options := []chromedp.ExecAllocatorOption{
		chromedp.Flag("headless", true), // debug使用
		//chromedp.Flag("blink-settings", "imagesEnabled=false"),
		chromedp.UserAgent(`Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36`),
	}
	options = append(chromedp.DefaultExecAllocatorOptions[:], options...)
	c, _ := chromedp.NewExecAllocator(context.Background(), options...)

	// create context
	ctx, cancel := chromedp.NewContext(c, chromedp.WithLogf(log.Printf))
	defer cancel()

	// navigate to a page, wait for an element, click
	//var res string
	var result string
	err := chromedp.Run(ctx,
		network.Enable(),
		chromedp.Navigate("https://v.qq.com/x/cover/mzc002003wfmjxq/v00357y85h0.html"),
chromedp.Evaluate("PLAYER._DownloadMonitor.context.dataset.currentVideoUrl", &result),
	)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(result)

}

附上常用视频网站的js代码

https://nilaoda.github.io/N_m3u8DL-CLI/GetM3u8.html

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:家里蹲的狐狸 » go语言学习例子No.37-chromedp爬取某讯网视频

分享到: 生成海报
avatar

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活