• 取远程网页数据 WebClient,HttpWebRequest


    修改版,由于取的网站多对应加了修正.我就没发新贴了.
    1,同一个用户(或浏览器)的不同请求共享同一个变量储存空间,就称其为Session(会话)
    Session内的变量保存在服务器中。
    用SessionID以区别不同的Session(会话),因为不是一个用户在请求。

    2,众所周知HTTP是无连接的,所以服务端和客户端交流时协商好使用些什么标志来保持Session(会话)状态,于是出现了Cookie(可能你更熟悉Cookie的其他用途)。这便是HTTP协议的状态保持机制,是标准,所有的浏览器都应该支持。为什么不用IP标识?呵呵,因为有人用代理啊,早期的代理服务器是很普遍的连到Internet的方式。

    So, 在Cookie中放置一个类似于SessionID的Value,同一个客户端在与服务端交互式,该ID便被来回传递,服务端便可依此建立若干变量,就是Session变量。不同的客户端因为SessionID不同,所以访问服务器时得到的Session变量就不同。


    验证原理服务器的Session会在客户端产生临时COOKIESS.
    APS.NET网站就会生成ASP.NET_SessionId=hjguqsn34ai3h3aattozr2fy
    PHP,JSP网站生成的JSESSIONID=4D9D2F0B65C77385C43CE4EE22D0536E
    就是看什么服务器而以
    取了登陆成功后的COOKIESS,只要电脑不清空COOKIESS,那就可以做成免登陆了.
    换句话A电脑的COOKIESS,不能在B电脑上用.
    工具WPE之类的网络探嗅器.
    先记录一次成功登陆时所发送的信息.
    找信息中的POST,和GET
    p1.jpgp2.jpg

    这网上打资料都没有完整的资料特别是验证码登陆。

    其实我这都是从网上收集整理出来的的。做的不是太好。

    使用的两个WebClient,HttpWebRequest。NET的类分别做出一个静态类和动态类。

    静态类GetHtml 支持一般的网页取数据和POET提交,但不能支持验证码,自动识别网页编码也可以手动输入网页编码。不过最好是手动输入那样会让程序少做运行代码。

    System.Collections.Specialized.NameValueCollection PostVars =new System.Collections.Specialized.NameValueCollection()
    PostVars.Add("uid","name");
    PostVars.Add("pwd","123456");

    string tmphtml= GetStrHtmlPost(url,PostVars);

    动态类PostWeb 支持验证码、验证用户、登陆过会产生COOKIES字符串,第二次运行程序时可通过COOKIES而不用再次登陆。

    PostWeb web=new PostWeb();

    web.GetCode(验证码地址);

    string tmplogin=web.LoginPost("http://www.mystand.com.cn/");

    if(tmplogin.Contains(条件))

    {

    string cookie= web.cookieHeader;//保存到文件中下次直接付到类就可免登陆

    web.GetPage("http://www.mystand.com.cn/", "http://www.mystand.com.cn/");

    }

    PostWeb web=new PostWeb();

    web.cookieHeader=cookie;//把保存文件中的cookie付到类中

    web.GetPage("http://www.mystand.com.cn/", "http://www.mystand.com.cn/");

    Code
  • 相关阅读:
    博客园小技巧【转载】
    Windows下的多线程
    【Windows】Windows中的数据类型以及命名
    【文档管理系统】【转】什么是元数据
    CentOS 安装 MariaDB 全部命令
    emacs 入门
    参考路径
    My SQL load data infile 遇到的问题总结
    oracle迁移到mysql(仅使用脚本)
    Eclipse tomcat server 无法添加项目
  • 原文地址:https://www.cnblogs.com/DasonKwok/p/1330472.html
Copyright © 2020-2023  润新知