因为以前对C#有些基础的情况下开始学习asp.net.现在多少能写点东西了。今天做了个百度视频采集的小例子。给大家分享,高手过了。 首先一下写这程序前对百度视频搜索页面的分析。在百度的视频搜索页面http://video.baidu.com/输入“抗震救灾”提交后,页面地址变为http://video.baidu.com/v?ct=301989888&rn=20&pn=0&db=0&s=0&fbl=1024&word=%BF%B9%D5%F0%BE%C8%D4%D6 知道他的参数信息了,我们可以自己去组参数,然后获得我们想要的页面,拿到页面源码用正则表达式提取。很明显word参数是搜索视频的关键字,“抗震救灾”是被编码后的结果。这样我们就可以自己制作一个提交页面提交,获得输入关键字的搜索后页面源码。我们要做到不让用户看到我们把数据提交到百度的页面,所以不能直接在表单提交时提交到http://video.baidu.com/v 上,所以我们要在做一个页面,用于处理提交的搜索关键字和获取连接。此页面关键信息如下:
写的简单了点,具体代码我会把写好的文件传上来,可以自己去做测试。上面的代码主要就是接受到上一页面提交的关键字后拼出一个连接百度视频的串,获取该页面的源码。但如果按上面的方式写会出问题。我们试想一下,比如拼出的连接是http://www.video.baidu.com/v?word=抗震救灾 这样在asp.net中连接此页面时中文没有进行编码处理,所以访问的页面会有乱码。因为我们看到从百度提交后会变成%BF%B9%D5%F0%BE%C8%D4%D6 如果在.net中提交不和上面的一样,因为百度的编码是gb2312,asp.net默认的是utf-8。所以编码后的串不一样,那么我们就需要修改配置文件,但这么小一个功能修改配置文件有些不值得了。所以我们把字符串接收到后自己用gb2312方式编码一次。
OK,编码完毕,我们可以获取源码用正则表达式提取关键信息了。 获取页面源代码很简单,下面是我写好的一个方法,提供URL连接地址返回该页面源码。
接下来就是用正则表达式取我们想要的信息了,这个正则我就不解释了,因为正则的写法是随时变的。大家可以网上找找资料学一下,不难的。