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

作者:vkvi 来源:千一网络(原创) 日期:2010-4-30

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

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

用 DownloadFile 下载网页

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

用 DownloadString 抓取网页

用 DownloadData 或 OpenRead 抓取网页

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

用 UploadFile 上传文件

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

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

用 UploadValues POST 数据

用 UploadData 上传任意格式数据

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

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

指定 UserAgent

相关阅读

你前面那位网友看了:如何查看 CPU 是 32 位的还是 64 位的

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
  • 1 楼:嗯,正好要抓取网页的JS文件
    谢了,又学到了
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他