拼吾爱程序人生

首页 » .Net编程 » C# » C#视频采集浅析
cobra - 2008-6-26 6:02:00
文/dirain  出处/博客园

    因为以前对C#有些基础的情况下开始学习asp.net.现在多少能写点东西了。今天做了个百度视频采集的小例子。给大家分享,高手过了。

    首先一下写这程序前对百度视频搜索页面的分析。在百度的视频搜索页面http://video.baidu.com/输入“抗震救灾”提交后,页面地址变为http://video.baidu.com/v?ct=3019 ... 9%D5%F0%BE%C8%D4%D6 知道他的参数信息了,我们可以自己去组参数,然后获得我们想要的页面,拿到页面源码用正则表达式提取。很明显word参数是搜索视频的关键字,“抗震救灾”是被编码后的结果。这样我们就可以自己制作一个提交页面提交,获得输入关键字的搜索后页面源码。我们要做到不让用户看到我们把数据提交到百度的页面,所以不能直接在表单提交时提交到http://video.baidu.com/v 上,所以我们要在做一个页面,用于处理提交的搜索关键字和获取连接。此页面关键信息如下:

Code


写的简单了点,具体代码我会把写好的文件传上来,可以自己去做测试。上面的代码主要就是接受到上一页面提交的关键字后拼出一个连接百度视频的串,获取该页面的源码。但如果按上面的方式写会出问题。我们试想一下,比如拼出的连接是http://www.video.baidu.com/v?word=抗震救灾 这样在asp.net中连接此页面时中文没有进行编码处理,所以访问的页面会有乱码。因为我们看到从百度提交后会变成%BF%B9%D5%F0%BE%C8%D4%D6 如果在.net中提交不和上面的一样,因为百度的编码是gb2312,asp.net默认的是utf-8。所以编码后的串不一样,那么我们就需要修改配置文件,但这么小一个功能修改配置文件有些不值得了。所以我们把字符串接收到后自己用gb2312方式编码一次。

Code


OK,编码完毕,我们可以获取源码用正则表达式提取关键信息了。
    获取页面源代码很简单,下面是我写好的一个方法,提供URL连接地址返回该页面源码。

Code


接下来就是用正则表达式取我们想要的信息了,这个正则我就不解释了,因为正则的写法是随时变的。大家可以网上找找资料学一下,不难的。

Code


上面就是取百度页面源码中每个视频信息的正则表达式。

在总结一下我设计此程序的思路吧,大家可以不记这个代码,理清思路,我认为代码不是很重要,重要的是思想。

1.分析一下百度视频搜索页面连接地址,并分析该页面源码的的视频具体格式,就是分析html元素了。
2.拼连接地址,取源码并取出信息。

拿到信息了,我们可以直接输出了,或者我们可以扩展下思路,用winfrom写个工具,采用多线程自动采集数据录入到数据库里。可扩展的地方还是很多的。

 您可能对 [C#] 的这些文章也感兴趣:

winform 用flash美化
用C#生成中文汉字验证码的基本原理
VisualC#托管Socket的实现方法(一)(1)
c#重点知识解答(五代理:一)
C#BuilderWinForm开发入门
Windows窗体之创建动态上下文菜单
C 大师StanLippman:我对中国程序员的忠告
在Linux上运行C#
用C#实现木马程序
用VisualC#编写屏幕保护程序
1
查看完整版本: C#视频采集浅析
Modify by pin5i DZNT_ExpandPackage 2.1.3237 2007-2008 pin5i.com
  Total Unique Visitors: