采集之cookie登陆

简介:
记录下来备忘

 1         

public static string PostData(string url,string indata,CookieContainer myCookieContainer)
 
2        {
 
3            string outdata=""
 
4            HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url); 
 
5            myHttpWebRequest.ContentType="application/x-www-form-urlencoded"
 
6            myHttpWebRequest.ContentLength=indata.Length; 
 
7            myHttpWebRequest.Method="POST"
 
8            myHttpWebRequest.CookieContainer=myCookieContainer; 
 
9            Stream myRequestStream=myHttpWebRequest.GetRequestStream(); 
10            StreamWriter myStreamWriter=new StreamWriter(myRequestStream,Encoding.GetEncoding("gb2312"));                 
11            myStreamWriter.Write(indata); 
12            myStreamWriter.Close(); 
13            myRequestStream.Close(); 
14            HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); 
15            myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri); 
16            Stream myResponseStream=myHttpWebResponse.GetResponseStream(); 
17            StreamReader myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312")); 
18            outdata=myStreamReader.ReadToEnd(); 
19            myStreamReader.Close(); 
20            myResponseStream.Close();
21            return outdata;
22        }


CookieContainer myCookieContainer=new CookieContainer(); 
string url="?????????????????";//登录页面的链接,看from里面的action
string loginfo="?????????????????";//登录字符串,例如user=??&pass=????
PostData(url,loginfo,myCookieContainer);//这个返回的应该是登录成功的信息,而且写好cookie了

url
="???????????";//这个就是想要读取的页面地址,普通情况用StreamReader是读不到的喔
PostData(url,"",myCookieContainer);//返回的就是目标页面,完成,如果还要连续读其它页面,继续这两句代码就行了(cookie已经保存了,自己用就好了).


相关文章
|
人工智能 JSON Rust
用 Rust 实现敏感信息拦截插件,提升 AI 网关安全防护能力
本⽂对敏感信息拦截插件的使用方式和实现原理进行了简单介绍,它能够自动检测并处理请求和响应中的敏感词,有效防止敏感信息泄露。通过对不同数据范围的支持和灵活的配置选项,该插件能够适应各种应用场景,确保数据的安全性和合规性。
548 100
|
设计模式 Java
【设计模式】工厂模式(定义 | 特点 | Demo入门讲解)
【设计模式】工厂模式(定义 | 特点 | Demo入门讲解)
364 2
|
8月前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用?
本文通过分蛋糕的比喻深入浅出地解析了 `Thread.Sleep` 函数的原理及其在操作系统中的作用。文章首先回顾了时间片算法和抢占式操作系统的调度机制,随后结合实例分析了 `Thread.Sleep(1000)` 和 `Thread.Sleep(0)` 的行为差异。前者让线程在指定时间内不参与 CPU 竞争,而后者触发操作系统立即重新计算线程优先级,可能让出 CPU 给其他线程。文章还解释了大循环中加入 `Thread.Sleep(0)` 的意义,即避免界面假死并优化资源分配。
173 8
|
8月前
|
存储 设计模式 Java
重学Java基础篇—ThreadLocal深度解析与最佳实践
ThreadLocal 是一种实现线程隔离的机制,为每个线程创建独立变量副本,适用于数据库连接管理、用户会话信息存储等场景。
291 5
|
8月前
|
SQL 存储 自然语言处理
从人脑到大模型:冯诺依曼的提示词工程启示
从人脑到大模型:冯诺依曼的提示词工程启示
193 2
|
11月前
|
人工智能 自然语言处理 算法
Devika AI:开源的 AI 软件开发工具,理解和执行复杂的人类指令
Devika AI 是一款开源的 AI 软件开发工具,能够理解和执行复杂的人类指令。它通过分解任务、信息搜集和代码生成,帮助开发者提高效率,减少人工干预。本文将详细介绍 Devika AI 的功能、技术原理以及如何运行和配置该工具。
473 9
Devika AI:开源的 AI 软件开发工具,理解和执行复杂的人类指令
贝叶斯统计中常见先验分布选择方法总结
本文详细介绍了贝叶斯统计中三种常见的先验分布选择方法:经验贝叶斯方法、信息先验和无信息/弱信息先验。
443 3
贝叶斯统计中常见先验分布选择方法总结
|
人工智能 自然语言处理
冬天到了,用OmniGen生成一个温暖的拥抱
近期,北京智源人工智能研究院(BAAI)正式推出了一款名为OmniGen的新型多功能图像生成模型。