下面是我到一公司应聘的面试题,是有关手机网站方面的,通过ASP.NET对其他网站的内容进行抓取,这可把我难倒了,以前根本没做过这方面的,在网上搜了一下好像没有比较满意的答案。我现在是一筹莫展,各位如是这方面的高手不妨赐教,可以是详细的解决方法,也可以将大概的思路说一下,写出主要的代码。不胜感激,多谢了!!!题目如下:抓取腾讯新闻的滚动新闻页面http://news.qq.com/scroll/scroll_today.htm1、程序做成service方式,多线程。2、能够做到定时抓取,抓取时间可以通过配置文件设置。3、要求对HTML代码进行过滤,转换成手机可识别的格式。4、页面中的图片能保存到本地机器的目录,并可以做成等比例压缩。

解决方案 »

  1.   

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://hi.baidu.com/%D1%D2%B3%E1%CF%C0/blog/item/69328a0a6552031e95ca6b47.html");
            req.Method = "POST";
            req.Accept = "image/gif,    image/x-xbitmap,    image/jpeg,    image/pjpeg,    application/vnd.ms-powerpoint,    application/vnd.ms-excel,    application/msword,    */*";
            req.Referer = "http://www.5460.net";
            req.ContentType = "application/x-www-form-urlencoded";
            req.UserAgent = "Mozilla/4.0    (compatible;    MSIE    6.0;    Windows    NT    5.0;    .NET    CLR    1.0.3705)";
            req.CookieContainer = (CookieContainer)(HttpContext.Current.Application["cookieheader"]);
            byte[] SomeBytes = System.Text.Encoding.UTF8.GetBytes(HttpUtility.UrlEncode("Default").ToString());
            req.ContentLength = SomeBytes.Length;        Stream newStream = req.GetRequestStream();
            newStream.Write(SomeBytes, 0, SomeBytes.Length);
            newStream.Close();
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
            Stream ReceiveStream = res.GetResponseStream();
            Encoding encode = System.Text.Encoding.GetEncoding("GB2312");
            StreamReader sr = new StreamReader(ReceiveStream, encode);
            ReceiveStream.Close();
            return sr.ReadToEnd() ;
      

  2.   

    面试也没有要解决方案的啊??四楼已经给了抓取新闻的代码,你要在Application中设一个Timer就可能定时抓取了。“要求对HTML代码进行过滤,转换成手机可识别的格式”也就是要把html转成WML了,我也只懂一点儿,自己去找一下吧{我就奇怪了,就是给你代码了,你就被录用了??那以后,上班,你就长到CSDN上了??什么是时候就头啊??建议你还是找一个力所能及工作吧,为了那点钱不值失人。}
      

  3.   

    我是楼主,6楼的兄弟误会了,我投简历的时候招聘信息上所描述的基本上是ASP.NET方面且是我熟悉方面的,然后面试的时候我也直说我对手机网站方面不太了解,那面试的哥们就说先发给我一道测试题,让我回去做一下,他说不一定要我全部能做出来,主要是看看我编程的功底和质量,我想既然这样那不妨一试。但看了题目后的确让我觉得很陌生,几乎都是我没做过的东西,我已想放弃了。不过做人要有始有终,我也不妨一试到底,最终的答案怎么样都给对方回复过去,成不成都无所谓了,最主要是我试图去做了这件事。谢谢上面各位的不吝赐教!!!
      

  4.   

    http://dotnet.aspx.cc/article/0a6660ce-4138-41ef-b882-15db65564709/read.aspx
    看看这也许有用的!
      

  5.   

    原理很简单,但处理过程比较复杂。遇到这样的面试题,个人认为把技术关键点及处理逻辑和过程描述清楚即可。1、利用Windows Service调用XML配置文件获取程序执行基本参数,如触发时间,目标URL等,发送请求、下载图片等做成单独线程。2、用HttpRequest、HttpResponse或WebClient类来发送请求和获取结果,利用正则表达式匹配出需要的数据,如手机支持的格式,所有图片地址等。3、图片缩放函数实现等比缩放。