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

摘要:
首先,你应该了解对方网页的运行机制。您可以使用httpwacth或httplook查看http发送和接收的数据。这两种工具相对简单且易于理解。这里不介绍。主要关注标题和帖子的内容。它通常包括cookie、referer页面和其他令人困惑且可能无法理解的变量,以及用于正常交互的参数,例如需要post或get的查询字符串中包含的参数。Httplook和htt

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

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

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

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

从网页抓取数据的一般方法第1张private void login()
从网页抓取数据的一般方法第2张从网页抓取数据的一般方法第3张         
...{
从网页抓取数据的一般方法第4张             System.Net.WebClient wb 
= new System.Net.WebClient();
从网页抓取数据的一般方法第4张
从网页抓取数据的一般方法第4张             System.Collections.Specialized.NameValueCollection header 
= new System.Collections.Specialized.NameValueCollection();
从网页抓取数据的一般方法第4张             header.Add(
"Cookie""czJ_cookietime=2592000; czJ_onlineusernum=1651; czJ_sid=w4bGJd");
从网页抓取数据的一般方法第4张             header.Add(
"Referer"@"http://www.test_by_jinjazz.com.cn/bbs/login.php");
从网页抓取数据的一般方法第4张             wb.Headers.Add(header);
从网页抓取数据的一般方法第4张             System.Collections.Specialized.NameValueCollection data 
= new System.Collections.Specialized.NameValueCollection();
从网页抓取数据的一般方法第4张             data.Add(
"formhash""ebd2faac");
从网页抓取数据的一般方法第4张             data.Add(
"referer""http://www.test_by_jinjazz.com.cn/bbs/search.php");
从网页抓取数据的一般方法第4张             data.Add(
"loginfield""username");
从网页抓取数据的一般方法第4张             data.Add(
"username""jinjazz");
从网页抓取数据的一般方法第4张             data.Add(
"password""999");
从网页抓取数据的一般方法第4张             data.Add(
"questionid""0");
从网页抓取数据的一般方法第4张             data.Add(
"answer""");
从网页抓取数据的一般方法第4张             data.Add(
"cookietime""2592000");
从网页抓取数据的一般方法第4张             data.Add(
"loginmode""");
从网页抓取数据的一般方法第4张             data.Add(
"styleid""");
从网页抓取数据的一般方法第4张             data.Add(
"loginsubmit""提交");
从网页抓取数据的一般方法第4张
从网页抓取数据的一般方法第4张             
byte[] b = wb.UploadValues("http://www.test_by_jinjazz.com.cn/bbs/login.php""Post", data);
从网页抓取数据的一般方法第4张             
string strData = System.Text.Encoding.Default.GetString(b);
从网页抓取数据的一般方法第4张             Console.WriteLine(strData);
从网页抓取数据的一般方法第26张         }

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

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

免责声明:文章转载自《从网页抓取数据的一般方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Netty之Bootstrapping-netty学习笔记(10)-20210810浅析Node与Element下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iframe+postMessage不同源页面通信

父页面 父页面运行在8080端口,通过iframe标签引用子页面,通过postMessage发送消息给iframe中的子页面。 <template> <div class="hello"> <iframe src="http://10.10.30.5:8081" height="100%"><...

互动直播中的前端技术——即时通讯

前言 在疫情期间,上班族开启了远程办公,体验了各种远程办公软件。老师做起了主播,学生们感受到了被钉钉支配的恐惧,歌手们开启了在线演唱会,许多综艺节目也变成了在线直播。在这全民互动直播的时期,我们来聊聊互动直播中的即时通讯技术在前端中的使用。 即时通讯技术 即时通讯(Instant Messaging,简称IM)是一个实时通信系统,允许两人或多人使用网络实时...

C# 与 SQLite的操作

1、通过Add References引用SQLite ADO .NET安装目录的bin目录下的System.Data.SQLite.DLL。 2、创建数据库文件:因为始终是个0字节文件,应该利用IO也可以(?!)。 System.Data.SQLite.SQLiteConnection.CreateFile(datasource);3、连接数据库 Syst...

c# Winform GridControl 给列自动生成快捷操作按钮

话不多说直接上代码: using DevExpress.XtraEditors.Controls; using DevExpress.XtraEditors.Repository; using DevExpress.XtraGrid; using DevExpress.XtraGrid.Columns; using DevExpress.XtraGrid....

curl使用

curl -H "Content-Type:application/json" -X POST --data '{"name":"zhangsan"}' http://127.0.0.1:9000/helloWorld curl命令用法: curl [options...] <url> 常用参数有: --connect-timeout <...

数据集成之主数据管理(一)基础概念篇

数据集成是当下比較热门的话题,相关的产品和平台也越来越多。非常多CIO都在各种数据集成平台和产品之间犹豫不决。因此对数据集成平台的框架体系有全面的理解,对各个厂家产品所提供的功能有深入的认识才干为数据平台选型的决策提供可靠的保证。 我有幸參与了国内一个知名企业的集成平台的设计工作,并主导了数据集成平台的需求分析和产品选型工作。这次工作中,研究了非常多新的...