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

首先要了解对方网页的运行机制 ,这可以用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://www.test_by_jinjazz.com.cn/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://www.test_by_jinjazz.com.cn/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://www.test_by_jinjazz.com.cn/bbs/login.php", "Post", data);
string strData = System.Text.Encoding.Default.GetString(b);
Console.WriteLine(strData);
}

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

时间: 2024-09-17 04:08:22

从网页抓取数据的一般方法的相关文章

httpwebrequest网页抓取数据乱码

问题描述 httpwebrequest网页抓取数据乱码 protected void Page_Load(object sender, EventArgs e) { string url = "http://www.veryzhun.com/planenumber.html"; string strall = HttpGet(url); //string srr1 = GetHtmlFromGet(url,Encoding.GetEncoding("gb2312")

利用Jsoup解析网页及抓取数据的简单应用

最近一直在公司利用爬虫技术,去抓取一些网页查询网站备案信息,刚开始使用HttpClient 和 jericho (这两个也挺好用你可以去测试一下).但是后来发现了Jsoup,他和Jquery很相似,在搜节点上使用的技术几乎相似.所以凡是使用过Jquery的都可以去尝试使用Jsoup去解析抓取数据.下面举个例子我们去抓去所有公交车的信息(哥是郑州的哈). 在解析之前你需要jar包,你可以去http://jsoup.org/直接下载.如果使用maven更方便 只需引进依赖 例如 <dependenc

网页抓取工具之数据预处理

提取的数据还不能直接拿来用?文件还没有被下载?格式等都还不符合要求?别着急,网页抓取工具火车采集器自有应对方案--数据处理. 图片1.png 网页抓取工具的数据处理功能包括三个部分,分别是内容处理.文件下载.内容过滤.下面依次给大家介绍: 1.内容处理:对从内容页面提取的数据进行替换.标签过滤.分词等进一步处理,我们可以同时添加多个操作,但这里需要注意的是,有多个操作时是按照从上到下的顺序来执行,也就是说,上个步骤的结果会作为下个步骤的参数. 下面来逐个介绍一下: ①提取内容为空:如果通过前面的

《用Python写网络爬虫》——2.2 三种网页抓取方法

2.2 三种网页抓取方法 现在我们已经了解了该网页的结构,下面将要介绍三种抓取其中数据的方法.首先是正则表达式,然后是流行的BeautifulSoup模块,最后是强大的lxml模块. 2.2.1 正则表达式 如果你对正则表达式还不熟悉,或是需要一些提示时,可以查阅https://docs.python.org/2/howto/regex.html 获得完整介绍. 当我们使用正则表达式抓取面积数据时,首先需要尝试匹配 元素中的内容,如下所示. >>> import re >>&

php通过curl添加cookie伪造登陆抓取数据的方法_php技巧

本文实例讲述了php通过curl添加cookie伪造登陆抓取数据的方法.分享给大家供大家参考,具体如下: 有的网页必须登陆才能看到,这个时候想要抓取信息必须在header里面传递cookie值才能获取 1.首先登陆网站,打开firebug就能看到对应的cookie把这些cookie拷贝出来就能使用了 2. <?php header("Content-type:text/html;Charset=utf8"); $ch =curl_init(); curl_setopt($ch,C

jquery+thinkphp实现跨域抓取数据的方法_php实例

本文实例讲述了jquery+thinkphp实现跨域抓取数据的方法.分享给大家供大家参考,具体如下: 今天做一个远程抓取数据的功能,记得jquery可以用Ajax远程抓取,但不能跨域.再网上找了很多.但我觉得还是来个综合的,所以我现在觉得有点把简单问题复杂化了,但至少目前解决了: 跨域抓取数据到本地数据库再异步更新的效果 我实现的方式:jquery的$.post发送数据到服务器后台,在由后台的PHP代码执行远程抓取,存到数据库ajax返回数据到前台,前台用JS接受数据并显示. //远程抓取获取数

java在网页上面抓取邮件地址的方法_java

本文实例讲述了java在网页上面抓取邮件地址的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import java.io.BufferedReader;  import java.io.InputStreamReader;  import java.net.URL;  import java.util.regex.Matcher;  import java.util.regex.Pattern;    public class h1  {     public stati

善用网页抓取工具,数据轻松收入囊中

数据已走进各行各业并得到了广泛应用,伴随着应用而来的则是对数据的获取和准确挖掘.我们可应用的数据多来自内部资源库以及外部载体,内部数据整合即用,而外部数据却需要先行获取.外部数据的最大载体就是互联网,网页中每天难以数计的增量数据里,就包含着许多对我们有利用价值的信息. 如何最高效地从海量信息里获取数据呢?网页抓取工具火车采集器有高招,以自动化的智能工具代替人工的数据收集,当然更高效也更准确. 一.数据抓取的通用性 作为通用的网页抓取工具,火车采集器基于源代码的操作原理让可抓取的网页类型达到99%

java简单网页抓取的实现方法_java

本文实例讲述了java简单网页抓取的实现方法.分享给大家供大家参考.具体分析如下: 背景介绍 一 tcp简介 1 tcp 实现网络中点对点的传输 2 传输是通过ports和sockets ports提供了不同类型的传输(例如 http的port是80) 1)sockets可以绑定在特定端口上,并且提供传输功能 2)一个port可以连接多个socket 二 URL简介 URL 是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址. 互联网上的每个文件都有一个唯一的