ASP.NET 抓取网页内容-用 WebClient 轻松实现文件下载上传、网页抓取

作者:vkvi 来源:ITPOW(原创) 日期:2010-4-30

我们知道用 WebRequest(HttpWebRequestFtpWebRequest) 和 WebResponse(HttpWebResponse、FtpWebResponse)可以实现文件下载上传、网页抓取,可是用 WebClient 更轻松。

如果我们用了中文,请注意:WebClient 要指定编码

用 DownloadFile 下载网页

就这样,http://www.itpow.com/ 首页就被保存到 C 盘下了。

用 DownloadString 抓取网页

用 DownloadData 或 OpenRead 抓取网页

我们将抓取来的网页赋给变量 str,任由我们使用。也可以用 OpenRead 方法来获取数据流。

用 UploadFile 上传文件

相对于 DownloadData、OpenRead,WebClient 也具有 UploadData、OpenWrite 方法,但最常用的恐怕还是上传文件,也就是用方法 UploadFile。

注意 UploadFile 的第一个参数,这里是 ftp,所以要把上传后形成的文件名加上去,也就是说这里不能是:ftp://www.itpow.com/。如果是 http,则不存在,只是指明交给哪个文件处理就可以了。

用 UploadValues POST 数据

用 UploadData 上传任意格式数据

UploadData 是指定二进制数据上传,任意格式都可以,想上传文件也可以,想上传普通表单数据也可以,想混合上传也可以,全在于我们如何构造这个二进制。而且还可以解决 UploadFile 不能指定 file 的 name 名称的问题。

关于这个格式,请参见:上传文件数据格式、文件上传格式,只不过要说明的是 Header 部分(目标文档的示例中 Upgrade-Insecure-Requests: 1 及其前面的行),不能直接放在 byte[] 中,而是通过 client.Headers.Add 指定,比如:

指定 UserAgent

相关阅读

相关文章