使用HttpGet协议与正则表达实现桌面版的糗事百科
根据上面的分析,我使用c#语言并利用System.Net程序集中的HttpWebRequest和HttpWebResponse这两个类去实现网页内容的抓取。 源代码如下:
2、分析网页html源代码,提取需要的信息 在1中我们已经根据page页索引的不同而获取不同的页面内容,而这一步的任务就是如何从返回的html源代码中获取我们想要的笑话内容。 我们提取网页文字的笑话内容包括三个部分:发布笑话者的头像,发布笑话者的昵称,发布内容。 2.1 分析网页构造正则表达式 首先我们对html源码进行分析并找出我们想要的内容所在的标签位置,以及它们的html的结构。 这上面是我分析的我们所需要的内容所在html源码中的标签位置,由于一个页面中每条笑话的html显示标签都是一样的,所以只要能偶提取一条笑话的内容,那么该页的其它笑话也可以同样提取。由于这种结构基本是固定的,每个笑话的各部分内容都是用相同的html标签表示,并且位置也是相同的,因此在写正则表达的时候,可以用很多常量字符去固定,这样能够加快正则的匹配效率。下面给出匹配笑话内容的正则表达,(通过分组实现捕获一个笑话的不同内容)。当然这个正则表达式可能存在一些不能完全精确匹配的情况。 正则:<img src="([^"]*")s*alt="([^"]*)"/>s</a>s<a href="([^"]*)"[^>]*>s<h2>[^>]*>s</a>s</div>s*<div class="content">s*((.*|<br/>)*) 其中,第一个括号里面的内容代表“头像地址”,第二个括号里面的内容代表“昵称”,第三个括号里面的内容代表“笑话内容” 2.2 编码获取页面的所有笑话 a、首先建一个笑话的实体类
b、利用正则获取笑话内容
c、根据头像url地址获取头像
3、数据绑定 数据都获取了,数据绑定是最容易的一步,由于数据获取这一步牵涉到web请求,会发生几秒的网络延迟,因此需要使用一个后台的工作线程去请求数据。在此处采用backgroundWorker控件来实现异步请求数据。其中UI部分借用了两个第三方控件,一个是加载的等待条,另一个是数据绑定控件。数据绑定代码就不贴出来了。可以在下面下载我的源码。 4、总结 在这个过程中,我对http的请求方式有了进一步的理解,也终于把平常学习的正则表达式发挥了用处。
上一篇:恐怖电影片
下一篇:弹棉花老人王绍兴,潜伏清东陵十多年,钢板做钥匙几乎搬空皇陵?
最近更新热点资讯
- 谷歌AI聊天记录让网友San值狂掉:研究员走火入魔认为它已具备人格,被罚带薪休假
- 豆瓣9.4,姐弟恋、三人行,这部大尺度太厉害
- Genes, Intelligence, Racial Hygiene, Gen
- 【土耳其电影】《冬眠》电影评价: 宛如一部回归伯格曼风格的道德剧
- 陌生人社会伦理问题研究
- 理论研究|前海实践的价值理性和工具理性
- 澳门刑事证据禁止规则
- 综艺普及剧本杀和密室逃脱助力线下实体店爆发式增长
- 日本小伙和五个小姐姐同居?看完我酸了!
- 第一学期高一语文考试期中试卷
- 高中必考的物理公式有哪些
- 这部大尺度的申奥片,却讲述了不lun恋...
- 心理语言学论文精品(七篇)
- 《贵妃还乡》 超清
- 专论 | 郭丹彤、陈嘉琪:古代埃及书信中的玛阿特观念
- 微专业招生 | 数字文化传播微专业列车即将发车,沿途课程抢先看!
- 生态安全的重要性汇总十篇
- 原创因“18禁”电影登舆论顶峰,万千少女一场春梦:这一生,足够了
- 章鱼头
- 读书心得体会
- 考研考北京大学医学部或者协和是一种怎样的难度?
- 央媒评女主播编造“夜宿故宫”:让肇事者付出代价,理所应当
- 库欣病患者求医记(流水账)
- 《太平公主》④ | 地位越高,越要装傻
- 爱体检 安卓版 v2.5