以一种"廉价"的方式获取页面的标题(downmoon)
来源:互联网 发布:知乎 如何取英文名 编辑:程序博客网 时间:2024/05/22 06:58
有朋友问到:
“我需要得到一个web page的title,因为这个title一般都比较靠前,只要取得html的前面少量内容就可以了。因为要取得很多个页面的title,如果下载整个html code,肯定比较浪费时间。.net好像没有现成的类可以干这件事情(取得部分html) ,我应该如何去实现?”
一种比较"廉价"(即较小成本条件下)的解决思路:
第一步:取出含有页面title部分的最小集合。这是“廉价”的关键!
第二步:用正则表达式取出<title>和</title>之间的部分即可。
先看下效果:
下面我们来分析:
页面title 一般都在靠近开始处,所以我们从开始读取Stream流,(如果靠近结尾,则如何?)读取到什么地方为止呢?有个比较明显的标志是
</title>
遇到它结束就可以了。
以什么方式读取,我这里选取的是:逐行读取,取到标志符即终止。
方法如下:
取出后就是再用正则取出<title>和</title>之间的部分。
这部分浪费了些时间,因为邀月的正则功底不行啊!·
先后试过如下正则表达式:
1 //string strRegEx ="<[^>]*>";
2 //string strRegEx = "<title>.*([^</title>])";
3 //string strRegEx = "<title>(.*?)</title>";
4 //string strRegEx = "<title>.*?</title>";
2 //string strRegEx = "<title>.*([^</title>])";
3 //string strRegEx = "<title>(.*?)</title>";
4 //string strRegEx = "<title>.*?</title>";
均不能达到想要的“经济廉价”的效果,最终,找到这个:
演示效果如上图:
后续问题:
1、将继续实现代理方式躲过IP;
2、将尝试另外一种通过Request.Filter方式直接替换来实现。
欢迎交流。
助人等于自助! 3w@live.cn
- 以一种"廉价"的方式获取页面的标题(downmoon)
- 在webForm中WebRequest/WebClient/WebBrowser获取远程页面源码的三种方式(downmoon)
- 满足于一种廉价的幸福?
- 页面上显示图片 以流的方式获取
- 如何修改自定义Webpart的标题?(downmoon)
- 如何修改自定义Webpart的标题?(downmoon)
- 一种IP的获取方式
- Struts 往jsp页面传值的三种方式 以及获取Jsp页面值得一种方式
- Struts 往jsp页面传值的三种方式 以及获取Jsp页面值得一种方式
- Webview获取连续H5页面的标题
- android 获取WebView的页面标题
- [field:arcurl]的一种获取方式
- 页面中以弹出框方式显示从服务器获取的参数
- 一种以流程为中心的CRM实施方式
- 一种以standalone方式启动erlang应用的方法
- 以一种更自然的方式去思考
- 队列以一种先进先出的方式管理数据
- 以STL::map实现引用表的一种方式
- 关于MMC不能打开文件
- UBuntu8.04 Server设置路由器
- 呵呵
- 第 1 章:安全风险管理指南介绍
- 浅谈对象生存期与内存管理
- 以一种"廉价"的方式获取页面的标题(downmoon)
- 初级程序员的心声
- 本人最近做SEO了
- 算法-----一苇渡江
- 扬起自信的风帆
- 试试功能
- Vim的常用快捷键
- WinCE 6.0开发环境的建立
- MFC学习---AfxGetApp 解剖