从网页抓取数据的一般方法

首先要了解对方网页的运行机制 ,这可以用httpwacth或者httplook来看一下http发送和接收的数据。这两个工具应该说是比较简单易懂的。这里就不再介绍了。主要关注的内容是heade

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

首先要了解对方网页的运行机制 ,这可以用httpwacth或者httplook来看一下http发送和接收的数据。这两个工具应该说是比较简单易懂的。这里就不再介绍了。主要关注的内容是header和post的内容。一般会包括cookie,Referer页面和其他一些乱其八糟可能看不懂的变量,还有就是正常交互的参数,比如需要post或者get的querystring所包含的东西。

httplook和httpwacth 网上有很多下载的,这里推荐使用httpwach,因为可以直接嵌入到ie中,个人觉得这个比较好用。这两个工具可以到我上传在csdn的资源中下载,地址为

http://download.csdn.net/user/jinjazz

这里简单给出一段可以抓取数据的c#代码,比如登录某个网站,获取登录成功后的html代码,供数据分析使用。

private   void  login()
          {
             System.Net.WebClient wb  =   new  System.Net.WebClient();
 
             System.Collections.Specialized.NameValueCollection header  =   new  System.Collections.Specialized.NameValueCollection();
             header.Add( " Cookie " ,  " czJ_cookietime=2592000; czJ_onlineusernum=1651; czJ_sid=w4bGJd " );
             header.Add( " Referer " ,  @" http://hovertree.net/bbs/login.php " );
             wb.Headers.Add(header);
             System.Collections.Specialized.NameValueCollection data  =   new  System.Collections.Specialized.NameValueCollection();
             data.Add( " formhash " ,  " ebd2faac " );
             data.Add( " referer " ,  " http://hovertree.net/bbs/search.php " );
             data.Add( " loginfield " ,  " username " );
             data.Add( " username " ,  " jinjazz " );
             data.Add( " password " ,  " 999 " );
             data.Add( " questionid " ,  " 0 " );
             data.Add( " answer " ,  "" );
             data.Add( " cookietime " ,  " 2592000 " );
             data.Add( " loginmode " ,  "" );
             data.Add( " styleid " ,  "" );
             data.Add( " loginsubmit " ,  " 提交 " );
 
              byte [] b  =  wb.UploadValues( " http://hovertree.net/bbs/login.php " ,  " Post " , data);
              string  strData  =  System.Text.Encoding.Default.GetString(b);
             Console.WriteLine(strData);
         }

以上代码除了三个url之外其他数据都是真实的,其中header和data中的参数和值都是用httpwatch来监测后得到。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120331.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 专业名词(版本号)「建议收藏」

    专业名词(版本号)「建议收藏」专业名词(版本号)

    2022年4月24日
  • 开心网外挂之争车位之发起比赛

    开心网外挂之争车位之发起比赛       publicvoidlalisai_KaiShiBiSai(stringid)       {           AccessHelperAH=newAccessHelper();           KaiXinHelperKH=newKaiXinHelper();           DataTabledt=AH.GetDataTable(“

    2022年9月3日
  • 算法的时间与空间复杂度(一看就懂)

    算法的时间与空间复杂度(一看就懂)算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:是指执行当前算…

    2022年5月14日
  • dell服务器如何恢复掉线硬盘阵列

    dell服务器如何恢复掉线硬盘阵列如果一个RAID5中有两块硬盘掉线,理论上来说,这个RAID阵列彻底失效,数据全部丢失,无法恢复。此时,如果数据非常重要,建议寻求专业的数据恢复公司帮助。如果想要自己尝试,此时有很小的几率可以修复。进入RAID卡配置界面后,选择objects-logical drive–对象,逻辑驱动器看到两块硬盘的状态都是failed–失败,如下:如果知道哪块硬盘是后掉线的,就将这个

    2022年6月26日
  • 09 idea中 git从远程仓库克隆到本地[通俗易懂]

        从服务端拉取代码                                    

    2022年4月15日
  • oracle 拼接字符串的两种方式「建议收藏」

    oracle 拼接字符串的两种方式「建议收藏」 方式一:使用管道符||进行拼接方式二:使用concat()函数区别:  方式一可以拼接多个字符串;方式二只能将2个字符串拼接到一起。写在最后  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!! 相关推荐:个人主页  …

    2022年9月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号