现在的位置: 首页 > 综合 > 正文

MSNPSharp 代碼4

2013年03月05日 ⁄ 综合 ⁄ 共 1909字 ⁄ 字号 评论关闭

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using Winista.Text.HtmlParser;
using Winista.Text.HtmlParser.Util;
using Winista.Text.HtmlParser.Http;
using Winista.Text.HtmlParser.Visitors;
using Winista.Text.HtmlParser.Filters;
using Winista.Text.HtmlParser.Tags;

using Winista.Text.HtmlParser.Lex;
using Winista.Text.HtmlParser.Nodes;
namespace ConsoleApplication1
{
    class City
    {
        public string getCityUrl(string City)
        {
            Encoding gb2312 = Encoding.GetEncoding("gb2312");

            string str = System.Web.HttpUtility.UrlEncode(City, gb2312);

            //http://php.weather.sina.com.cn/search.php?city=%CE%E4%BA%BA&c=1&dpc=1
            string CityUrl = "http://php.weather.sina.com.cn/search.php?city=" + str + "&c=1&dpc=1";
            //Console.WriteLine(CityUrl);
            //Console.ReadKey();
            return CityUrl;
        }
        public string getHtmlCode(string url)
        {
            WebClient webclient = new WebClient();
            webclient.Encoding = Encoding.Default;
            string htmlcode = webclient.DownloadString(url);
            return htmlcode;
        }

        public string getWeather(string city)
        {
            string url = getCityUrl(city);
            string str = "";
            Lexer lexer = new Lexer(getHtmlCode(url));
            Parser myparser = new Parser(lexer);

            NodeFilter filter = new HasAttributeFilter("class", "title-s1");
            NodeFilter filter1 = new NodeClassFilter(typeof(Div));
            NodeFilter filter2 = new NodeClassFilter(typeof(Span));
            NodeList nodelist = myparser.ExtractAllNodesThatMatch(filter);
            nodelist = nodelist.ExtractAllNodesThatMatch(filter1, true);
            nodelist = nodelist.ExtractAllNodesThatMatch(filter2, true);
           

            str = nodelist.ElementAt(0).ToPlainTextString();
            //str = str.Replace(" ", "");

            Console.WriteLine(str.ToString());
            Console.ReadKey();
            return str;
        }

    }
}

抱歉!评论已关闭.