天涯社区离线阅读器(实现只看楼主功能)
1、从指定网址下载网页
{
stringstrResult;
try{
HttpWebRequest myReq=(HttpWebRequest)HttpWebRequest.Create(a_strUrl);
myReq.Timeout=60000;
HttpWebResponse HttpWResp=(HttpWebResponse)myReq.GetResponse();
Stream myStream=HttpWResp.GetResponseStream();
StreamReader sr=newStreamReader(myStream, Encoding.Default);
strResult=sr.ReadToEnd();
myStream.Close();
}catch(Exception exp)
{
strResult="错误:"+exp.Message;
}returnstrResult;
}
2、分离出帖子正文
{
stringresult=htmlContent;
//剪切掉正文后面的内容Regex regexObj=newRegex("</div><center>");
Match m=regexObj.Match(result);
if(m.Value!=string.Empty)
{
result=result.Substring(0, result.IndexOf(m.Value));
}
//清除掉广告regexObj=newRegex(@"<center><IFRAME(.|\s)+?</IFRAME></center>");
result=regexObj.Replace(result,"");
//剪切掉正文前面的内容
//regexObj = new Regex("<TABLE align=center border=0 cellSpacing=0 width='100%'>");regexObj=newRegex(@"<span id='AddMyDigest'></span>");
m=regexObj.Match(result);
if(m.Value!=string.Empty)
{
result=result.Substring(result.IndexOf(m.Value));
}
returnresult;
}
3、获取指定作者的发帖在本地生成新的Html文件以便在程序内嵌浏览器中查看
{
StringBuilder html=newStringBuilder();
html.Append("<Html><body>");
SourceHtml=SplitHtml(SourceHtml);
Regex r=newRegex(@"<TABLE(.|\s)+?</table>");
MatchCollection ms=r.Matches(SourceHtml);
for(inti=0; i<ms.Count-2; i++)
{
Match m=ms[i];
intstart=SourceHtml.IndexOf(m.Value)+m.Value.Length;
stringtitle=m.Value;
Regex re=newRegex(@"k>(.|\s)+?<");
Match m1=re.Match(title);
stringauthor=m1.Value;
if(author.Length>0)
author=author.Substring(2, author.IndexOf("<")-2);
if(author==AuthorName)
{
html.Append(title);
Match NextMatch=ms[i+1];
stringcontent;
if(NextMatch!=null)
content=SourceHtml.Substring(start, SourceHtml.IndexOf(NextMatch.Value)-start);
else content=SourceHtml.Substring(start);
html.Append(content);
html.Append("<br>");
} } html.Append("</body></html>");
returnhtml.ToString();
}
4、获取分页数据
{
SourceHtml=SplitHtml(SourceHtml);
Regex r=newRegex(@"http:.+?((\[\d+\])|首页)");
MatchCollection ms=r.Matches(SourceHtml);
List<PageData>pages=newList<PageData>();
foreach(Match minms)
{
r=newRegex("><.+?>");
strings=r.Replace(m.Value,"");
s=s.Replace(">","");
if(s.IndexOf("首页")>=0)
pages.Add(newPageData(s.Substring(0, s.IndexOf("首页")),"首页"));
else pages.Add(newPageData(s.Substring(0,s.IndexOf("[")),s.Substring(s.IndexOf("["))));
}
returnpages;
}
完整源代码点击下载
转载于:https://www.cnblogs.com/happy555/archive/2007/10/08/916818.html
天涯社区离线阅读器(实现只看楼主功能)相关推荐
- 实现sohu社区′只看楼主′的功能,抓取连载帖子中楼主的所有帖子
sohu社区(http://club.sohu.com/main.php),经常有一些不错的连载的帖子,少则几千个回复,多则可以上万个,可是最有用最想看的楼主的帖子也就几十个,从这些成千上万的帖子中, ...
- java 实现百度贴吧“只看楼主”
这个功能主要是:先确定帖子的地址,然后获取html代码, 通过jsoup解析html, 然后把楼主发的提取出来保存到book.html 除了jsoup的使用, 更多的是要看贴吧帖子的大体结构: 1.先 ...
- Python爬虫实战(二):爬取天涯帖子(只看楼主)
先上代码 #coding=utf-8 import requests from bs4 import Tag from bs4 import BeautifulSoup def getHtml(url ...
- 写个码农们:从业互联网13年,才觉得卖卤菜比找风投上市靠谱只看楼主
10年风雨坑爹人生,略略回顾 -----------------------------回顾开始-------------------------------- [黑客登场]十多年前的一天晚上,警察突 ...
- 孙悟空是如何混出人样的?只看楼主收藏
孙悟空本来是一介凡人,后来学了一身绝世本事,金丹术.地煞术.七十二般变化和筋斗云,在花果山过得不晓得多自在,已经算是有模有样了,但是,在天庭仙界看来,这点成就实在不足为道. 孙猴子对此也甚为不满,羡慕 ...
- 随手正则写的 CSDN【只看楼主】功能
写这个的时候居然没有看到原来CSDN已经有这个功能了,写完代码了突然发现原来早就已经有了. 现把代码贴出来吧,虽然有很多解析HTML的开源类库如:http://htmlagilitypack.code ...
- 上下五千年。。成功之路。。。都离不开老庄孙子。。。只看楼主 收藏 回复
"大师啊,你怎么看待老子的成功呢?" "老子的成功啊,离不开八个字,忍辱偷生顺其自然" "那大师怎么看待庄子的成功呢?" "庄子的 ...
- Zeal —— API文档离线阅读器
背景 在软件开发的过程中,常常需要查阅多个API文档,但网络环境等因素常常导致在线文档查看用户体验并不佳.为此,介绍一款离线的API文档阅读器,Zeal.Zeal中自配了多种API文档可供查阅,如El ...
- 小说阅读器 免费源码 高颜值 功能齐全
最近自己做了个小说阅读器,就是下面这个东西啦,目前仅支持Window系统 软件的特点: 导入本地txt书籍,自动提取目录: 记录阅读进度,下次打开自动跳转至上次离开位置: 支持书籍分组管理,可以自己创 ...
- office电子书_掌阅推出首款彩屏电子书阅读器,用它看漫画体验到底如何?
它作为传统电子书阅读器的延伸,在保留护眼.省电等特性的基础下,还可以显示彩色内容. 从 1996 年诞生于麻省理工实验室起,电子墨水屏技术已经发展了 20 多年,不过它的变化好像一直很少,最常见的应用 ...
最新文章
- Cesium调用 WMS 、WMTS 服务
- Kubernetes — 控制器
- 大数据为何让传统银行焦虑?
- Java动态生成类以及动态添加属性 本篇文章来源于 Linux公社网站(www.linuxidc.c
- LeetCode-两个结构分别遍历,然后合并
- Eclipse Memory Analyzer以及内存泄露的原因
- lodash源码分析之compact中的遍历
- 和gdi绘图效率比较_绘图计算器测评来袭!哪一款才是你AP考试的最佳拍档?
- LeetCode 515. 在每个树行中找最大值(广度优先搜索)
- kernighan lin算法
- node 版本管理器 之 nvm 安装与使用
- dhcp服务配置 [Linux] 超详细的步骤!学不会你打我!
- 【机器人学:运动规划】快速搜索随机树(RRT---Rapidly-exploring Random Trees)入门及在Matlab中演示
- 家用电器插头插座外壳防冲击等级试验——IK摆锤冲击试验装置
- 【JAVA基础速过】第3章 数组+Arrays工具类的使用
- 网络会变的有自我意识吗
- 最佳联盟营销软件解决方案:简化你的联盟管理
- 《医疗器械软件注册指导原则》阅读笔记
- 计算机存储单位--“大数据”概念
- 查看电脑IP端口配置/Windows Ipconfig命令教程