马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

如何读取内容是网页源代码形式的.txt文本?

  [复制链接]
查看6014 | 回复9 | 2014-5-6 13:23:49 | 显示全部楼层 |阅读模式
.txt里面的内容大概就是下面这样的源码形式,我要怎么把按照正常的(也就是标题+内容)的格式读取出来呢?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>男女幽默笑话 - 开心幽默网</title>
<link type="text/css" href="/skins/003/style/list.css" rel="stylesheet" />
<style type="text/css">
.fenye li{ float:left; margin-left:10px;}
</style>
</head>
<body>
<!--头部-->
{全局:公共头部}<div class="top">
   <div class="logo"><a href="/"><img src="/skins/003/style/logo.gif" width="232px" height="54" border="0" /></a></div>
   <div class="ad_1">
   </div>
</div>
<!--导航-->
<div class="bar">
   <div class="barleft"> </div>
   <div class="barcenter">
       <div class="barbtn">
  <a href="/" class="barbtnM">网站首页</a><span class="rowlineN"></span>

<a class="barbtnN" href="/list_1.html">男女幽默笑话</a><span class="rowline"></span>

<a class="barbtnN" href="/list_2.html">幽默笑话集锦</a><span class="rowline"></span>

<a class="barbtnN" href="/list_3.html">幽默笑话精选</a><span class="rowline"></span>

<a class="barbtnN" href="/list_4.html">幽默笑话大全</a><span class="rowline"></span>

<a class="barbtnN" href="/list_5.html">最新幽默笑话</a><span class="rowline"></span>

<a class="barbtnN" href="/list_6.html">爱情幽默笑话</a><span class="rowline"></span>


ibcadmin | 2014-5-6 14:45:49 | 显示全部楼层
两种方法
第一  用正则表达式匹配  Regex regex = new Regex("匹配的内容");

第二,直接弄成html格式 , 然后用webbrowser 直接拿到标题

如果webbrowser 拿不到标题的话  也可以用正则

用正则的话 你可以参考
C#获取IP归属地【使用抓取网页内容方式】
http://www.ibcibc.com/forum.php? ... =3494&fromuid=1
(出处: C#论坛-C#教程,ASP.NET教程)

C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
独轩求静 | 2014-5-6 14:51:41 | 显示全部楼层
ibcadmin 发表于 2014-5-6 14:45
两种方法
第一  用正则表达式匹配  Regex regex = new Regex("匹配的内容");

我知道用正则,但是我不懂怎么实现
ibcadmin | 2014-5-6 15:14:50 | 显示全部楼层
  string read = "你读取的文本";
          Regex regex = new Regex("<title>(?<title>.*?)</title>");  //匹配你的正则 , 就照我这个写
          if (regex.IsMatch(read))
          {
              read = regex.Match(read).Groups["title"].Value;
          }    执行到这里  如果正则没问题的话  read已经是你的标题了


C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
独轩求静 | 2014-5-6 15:19:24 | 显示全部楼层
ibcadmin 发表于 2014-5-6 15:14
string read = "你读取的文本";
          Regex regex = new Regex("(?.*?)" ...

谢谢,那内容下面的呢?
ibcadmin | 2014-5-6 15:38:41 | 显示全部楼层
格式:<a class="barbtnN" href="/list_*.html">(?<title>.*?)</a><span class="rowline"></span>

应该是这样
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
ibcadmin | 2014-5-6 15:39:25 | 显示全部楼层
格式:<a class="barbtnN" href="/list_*.html">(?<title>.*?)</a><span class="rowline"></span>

应该是这样
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
独轩求静 | 2014-5-6 15:46:40 | 显示全部楼层
ibcadmin 发表于 2014-5-6 15:39
格式:(?.*?)

应该是这样

大神,能详细点吗?
ibcadmin | 2014-5-6 16:07:15 | 显示全部楼层
         string read = "你读取的文本";
   string title ="";//声明变量 保存标题  string content="";//声明变量 保存内容         
Regex regex = new Regex("<title>(?<title>.*?)</title>");  //匹配标题
          if (regex.IsMatch(read))
          {
               title= regex.Match(read).Groups["title"].Value;
          }  
regex = new Regex("<a class=\"barbtnN\" href=\"/list_(?<a>.*?).html\">(?<title>.*?)</a><span class=\"rowline\"></span> ");  //匹配内容
          if (regex.IsMatch(read))
          {
              content= regex.Match(read).Groups["title"].Value;
          }  


title  跟 content 分别就是标题跟内容了



C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
独轩求静 | 2014-5-6 16:15:09 | 显示全部楼层
ibcadmin 发表于 2014-5-6 16:07
string read = "你读取的文本";
   string title ="";//声明变量 保存标题  string content=""; ...

好的,谢谢,我试试
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则