浏览器JS控制台获取
直接输入 document.cookie
来查看 cookie:
> document.cookie
<. 'c01b67f4002fc81ca5b5015821bdab73__typecho_uid=1; c01b67f4002fc81ca5b5015821bdab73__typecho_authCode=%24T%24RCFvoIeVQ2212a46302f9d907b55dd835a3e728b3; PHPSESSID=4dl7shuot7gi8bisleplhgr3gj; c01b67f4002fc81ca5b5015821bdab73extend_contents_views=188%2C184%2C256%2C261%2C226%2C220%2C218%2C217%2C202%2C186'
注: 此方法只能获取非 HttpOnly
类型的 cookie。
chromedp浏览器爬虫获取
使用远程调试模式启动浏览器
启动脚本示例: chromestart.sh
#!/bin/bash
# 无界面模式启动
"/opt/google/chrome/google-chrome" --headless --no-sandbox --disable-gpu --log-level=1 --remote-debugging-port=9222 --disable-popup-blocking --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36" --proxy-server=http://127.0.0.1:1080 --user-data-dir=runtime/chrome_user_data
- 无界面模式:
--headless
--no-sandbox
--disable-gpu
三个参数可开启无界面模式,在linux后台静默运行 - 远程调试端口:
--remote-debugging-port=9222
使浏览器允许被远程控制暴露的端口号 - UA请求头:
--user-agent
浏览器请求头的用户代理标识,防止被反爬虫 - 代理上网设置:
--proxy-server
访问谷歌等国内无法访问的网站,需要设置代理上网 - 浏览器用户数据目录:
--user-data-dir
脚本启动浏览器以一个新用户的方式启动,必须设置一个用户数据目录
注: 开发调试时,请关闭无界面模式,方便肉眼实时观察浏览器允许状况。
chromedp获取cookie
下载 chromedp 第三方库: go get github.com/chromedp/chromedp
演示代码: main.go
package main
import (
"context"
"log"
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
)
func main() {
ctx, cancel := chromedp.NewRemoteAllocator(context.Background(), "ws://127.0.0.1:9222")
defer cancel()
c, cancel1 := chromedp.NewContext(ctx)
defer cancel1()
err := chromedp.Run(c,
chromedp.Navigate("https://helloword.com"),
chromedp.WaitVisible(`//xpath`, chromedp.BySearch),
chromedp.ActionFunc(func(ctx context.Context) error {
// 获取cookie
cookies, err := network.GetAllCookies().Do(ctx)
// 将cookie拼接成header请求中cookie字段的模式
var c string
for _, v := range cookies {
c = c + v.Name + "=" + v.Value + ";"
}
log.Println(c)
if err != nil {
return err
}
return nil
}))
if err != nil {
log.Fatal(err)
}
}
使用chromedp解决反爬虫问题 https://juejin.cn/post/6844903576943198222
如何用 JS 操作 Cookie? https://zhuanlan.zhihu.com/p/509830488
Instantly share code, notes, and snippets. https://gist.github.com/NaniteFactory/b47038047597c387ef6d16a79ee12489
https://github.com/chromedp/examples/blob/master/cookie/main.go