日期:2014-05-18  浏览次数:20397 次

一面试题,各位高手请帮忙看一下,如何解决?
下面是我到一公司应聘的面试题,是有关手机网站方面的,通过ASP.NET对其他网站的内容进行抓取,这可把我难倒了,以前根本没做过这方面的,在网上搜了一下好像没有比较满意的答案。我现在是一筹莫展,各位如是这方面的高手不妨赐教,可以是详细的解决方法,也可以将大概的思路说一下,写出主要的代码。不胜感激,多谢了!!!

题目如下:

抓取腾讯新闻的滚动新闻页面

http://news.qq.com/scroll/scroll_today.htm

1、程序做成service方式,多线程。

2、能够做到定时抓取,抓取时间可以通过配置文件设置。

3、要求对HTML代码进行过滤,转换成手机可识别的格式。

4、页面中的图片能保存到本地机器的目录,并可以做成等比例压缩。

------解决方案--------------------
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() ;
------解决方案--------------------
面试也没有要解决方案的啊??四楼已经给了抓取新闻的代码,你要在Application中设一个Timer就可能定时抓取了。

“要求对HTML代码进行过滤,转换成手机可识别的格式”也就是要把html转成WML了,我也只懂一点儿,自己去找一下吧

{我就奇怪了,就是给你代码了,你就被录用了??那以后,上班,你就长到CSDN上了??什么是时候就头啊??建议你还是找一个力所能及工作吧,为了那点钱不值失人。}
------解决方案--------------------
http://dotnet.aspx.cc/article/0a6660ce-4138-41ef-b882-15db65564709/read.aspx


看看这也许有用的!
------解决方案--------------------
原理很简单,但处理过程比较复杂。

遇到这样的面试题,个人认为把技术关键点及处理逻辑和过程描述清楚即可。

1、利用Windows Service调用XML配置文件获取程序执行基本参数,如触发时间,目标URL等,发送请求、下载图片等做成单独线程。

2、用HttpRequest、HttpResponse或WebClient类来发送请求和获取结果,利用正则表达式匹配出需要的数据,如手机支持的格式,所有图片地址等。

3、图片缩放函数实现等比缩放。