using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using CefSharp; using CefSharp.WinForms; namespace WindowsFormsApp2 { public partial class Form1 : Form { public ChromiumWebBrowser browser; public static string cookies; public Form1() { InitializeComponent(); } private void Form1_Load_1(object sender, EventArgs e) { InitBrowser(); MaximizeBox = false; ThreadPool.SetMaxThreads(20, 20); } //获取cookie private void visitor_SendCookie(CefSharp.Cookie obj) { cookies += obj.Domain.TrimStart('.') + "^" + obj.Name + "^" + obj.Value + "$"; Console.WriteLine("*********** cookies ************"); Console.WriteLine("cookies:{0}", cookies); } public static System.Net.Cookie GetCc() { System.Net.Cookie cookieCollection = new System.Net.Cookie(); if (cookies == null) { return cookieCollection; } Dictionary<string, System.Net.Cookie> keys = new Dictionary<string, System.Net.Cookie>(); string[] arr = cookies.Split('$'); foreach (string s in arr) { string[] car = s.Split('^'); //打印cookie Console.WriteLine("ssssssssssssssssssssssssssssssss-------------" + s); /*if (string.IsNullOrEmpty(s)) continue; string[] car = s.Split('^'); if (car[1] != "PASS_ID") continue; cookieCollection.Domain = car[0]; cookieCollection.Name = car[1]; cookieCollection.Value = car[2]; return cookieCollection; */ } return cookieCollection; } //初始化浏览器 public void InitBrowser() { Cef.Initialize(new CefSettings()); browser = new ChromiumWebBrowser("mms.pinduoduo.com"); this.Controls.Add(browser); browser.Dock = DockStyle.Fill; browser.FrameLoadEnd += (_s, _e) => { var cookieManager = Cef.GetGlobalCookieManager(); CookieVisitor visitor = new CookieVisitor(); visitor.SendCookie += visitor_SendCookie; cookieManager.VisitAllCookies(visitor); }; } //窗体关闭时,记得停止浏览器 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Cef.Shutdown(); } private void button1_Click(object sender, EventArgs e) { System.Net.Cookie c = GetCc(); Console.WriteLine(cookies); } } } public class CookieVisitor : ICookieVisitor { public event Action<CefSharp.Cookie> SendCookie; public void Dispose() { //throw new NotImplementedException(); } public bool Visit(CefSharp.Cookie cookie, int count, int total, ref bool deleteCookie) { deleteCookie = false; if (SendCookie != null) { SendCookie(cookie); } return true; } }