博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
根据URL提取页面的Title,根据网页的charset自动判断Encoding
阅读量:5142 次
发布时间:2019-06-13

本文共 2145 字,大约阅读时间需要 7 分钟。

using System;using System.Net;using System.Text;using System.Text.RegularExpressions;internal class Program{    // 获取网页的HTML内容,根据网页的charset自动判断Encoding    public static string GetHtml(string url)    {        return GetHtml(url, null);    }    // 获取网页的HTML内容,指定Encoding    private static string GetHtml(string url, Encoding encoding)    {        byte[] buf = new WebClient().DownloadData(url);        if (encoding != null) return encoding.GetString(buf);        string html = Encoding.UTF8.GetString(buf);        encoding = GetEncoding(html);        if (encoding == null || encoding == Encoding.UTF8) return html;        return encoding.GetString(buf);    }    // 根据网页的HTML内容提取网页的Encoding    private static Encoding GetEncoding(string html)    {        string pattern = @"(?i)\bcharset=(?
[-a-zA-Z_0-9]+)"; string charset = Regex.Match(html, pattern).Groups["charset"].Value; try { return Encoding.GetEncoding(charset); } catch (ArgumentException) { return null; } } // 根据网页的HTML内容提取网页的Title private static string GetTitle(string html) { string pattern = @"(?si)
])*)?>(?
.*?)"; return Regex.Match(html, pattern).Groups["title"].Value.Trim(); } // 打印网页的Encoding和Title private static void PrintEncodingAndTitle(string url) { string html = GetHtml(url); Console.WriteLine("[{0}] [{1}]", GetEncoding(html), GetTitle(html)); } // 程序入口 private static void Main() { PrintEncodingAndTitle("http://www.msdn.net/"); PrintEncodingAndTitle("http://www.cnblogs.com/"); PrintEncodingAndTitle("http://www.cnblogs.com/skyiv/"); PrintEncodingAndTitle("http://www.csdn.net/"); PrintEncodingAndTitle("http://news.163.com/"); }}/* 程序输出:[] [MSDN: Microsoft Developer Network][System.Text.UTF8Encoding] [博客园 - 程序员的网上家园][System.Text.UTF8Encoding] [空间/IV - 博客园][System.Text.UTF8Encoding] [CSDN.NET - 中国最大的IT技术社区,为IT专业技术人员提供最全面的信息传播和服务平台][System.Text.DBCSCodePageEncoding] [新闻中心_网易新闻]*/
转自:

转载于:https://www.cnblogs.com/zhangqs008/archive/2012/11/28/2802191.html

你可能感兴趣的文章
Streaming的receiver模式
查看>>
[转载]一个人的失败,99%失败于“脾气”
查看>>
【Nowcoder】玩游戏
查看>>
过滤器(Filter)
查看>>
字符串的操作
查看>>
性能优化之Java(Android)代码优化
查看>>
springMVC相关—文件上传
查看>>
由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想
查看>>
uva 1416 Warfare And Logistics
查看>>
欲则不达
查看>>
盒子游戏
查看>>
OpenJudgeP1.10.08:病人排队__(刷题)_水题
查看>>
观察者模式
查看>>
Hadoop分布式文件系统中架构和设计要点汇总
查看>>
cout和printf
查看>>
UVa 10088 - Trees on My Island (pick定理)
查看>>
#C++PrimerPlus# Chapter11_Exersice4_mytimeV4
查看>>
iOS8 针对开发者所拥有的新特性汇总如下
查看>>
Jmeter + Grafana搭建实时监控可视化
查看>>
uCGUI字符串显示过程分析和uCGUI字库的组建
查看>>