http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3965|回复: 4

[HttpHelper] 正则截取字符串

[复制链接]
发表于 2017-3-1 18:08:18 | 显示全部楼层 |阅读模式
</TR>
        <TR class=tdc bgcolor=#EFF1F3>
<TD width="138" align="center" noswap>您查询的手机号码段</TD><TD width=* align="center" class=tdc2>18955554444 <a href="http://jx.ip138.com/18955554444/" target="_blank">测吉凶(<font color="red">新</font>)</a></TD>
        </TR>
        <TR class=tdc bgcolor=#EFF1F3>
                <TD width="138" align="center">卡号归属地</TD><td align="center" class=tdc2><!-- <td></td> -->安徽&nbsp;马鞍山市</TD>
        </TR>
        <TR class=tdc bgcolor=#EFF1F3>
                <TD width="138" align="center" noswap>卡&nbsp;类&nbsp;型</TD><TD align="center" class=tdc2><!-- <td></td> -->中国电信天翼卡</TD>
        </TR>
        <TR class=tdc bgcolor=#EFF1F3>
                <TD align="center">区 号</TD>
                <TD align="center" class=tdc2>0555</TD>
        </TR>
        <TR class=tdc bgcolor=#EFF1F3>
                <TD align="center">邮 编</TD>
                <TD align="center" class=tdc2>243000 <a href="http://alexa.ip138.com/post/" target="_blank">更详细的..</a></TD></TR>



            Regex rg = new Regex("(?<=tdc2>).*?(?=<)");   //获取电话号码
            var strresult = rg.Match(html).Groups[0];
            Response.Write(strresult);


            Regex rg1 = new Regex("(?<=<tdc2>).*?(?=<)");   //获取卡号归属地
            var strresult1 = rg1.Match(html).Groups[1];
            Response.Write(strresult1);

我想截取“安徽马鞍山市“怎么截取?



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2017-3-2 10:36:52 | 显示全部楼层
如果只是要这一个同样的字符串的话那就不需要获取,直接写死就行了,
安徽&nbsp;马鞍山市

如果是要获取每个号的归属地信息可以这样写
<TD width="138" align="center">卡号归属地</TD><td align="center" class=tdc2><!-- <td></td> -->([\s\S]*?)</TD>
 楼主| 发表于 2017-3-2 11:15:10 | 显示全部楼层
站长苏飞 发表于 2017-3-2 10:36
如果只是要这一个同样的字符串的话那就不需要获取,直接写死就行了,
安徽&nbsp;马鞍山市

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CsharpHttpHelper;
using System.Net;
using CsharpHttpHelper.Enum;
using System.Text.RegularExpressions;

namespace CsharpHttpHelper_Demo
{
    public partial class HttpPost_Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //创建Httphelper对象
            HttpHelper http = new HttpHelper();
            //创建Httphelper参数对象
            HttpItem item = new HttpItem()
            {
                URL = "http://www.ip138.com:8080/search.asp?action=mobile&mobile=18955554444",//URL     必需项   
                Method = "get",//URL     可选项 默认为Get   
                //ContentType = "application/x-www-form-urlencoded",//返回类型    可选项有默认值
                //PostDataType = PostDataType.String,//默认为字符串,同时支持Byte和文件方法
                //PostEncoding = System.Text.Encoding.UTF8,//默认为Default,
                //Postdata = "a=123&c=456&d=789",//Post要发送的数据
            };
            //请求的返回值对象
            HttpResult result = http.GetHtml(item);
            //获取请请求的Html
            string html = result.Html;

            //获取请求的Cookie
            string cookie = result.Cookie;


            Regex rg = new Regex("(?<=tdc2>).*?(?=<)");   //获取电话号码
            var strresult = rg.Match(html).Groups[0];
            Response.Write(strresult);


            Regex rg1 = new Regex("(?=<TABLE).*?(?=</TABLE>)");   //获取卡号归属地
            var strresult1 = rg1.Match(html).Groups[0];
            Response.Write(strresult1);

            Regex rg2 = new Regex("(?=<TR class=tdc bgcolor=#EFF1F3>).*?(?=</TR>)");   //获取卡号归属地
            var strresult2 = rg2.Match(html).Groups[0];
            Response.Write(strresult2);

            Regex rg3 = new Regex("(?=<TR class=tdc bgcolor=#EFF1F3>).*?(?=<)");   //获取卡号归属地
            var strresult3 = rg3.Match(html).Groups[0];
            Response.Write(strresult3);

            Regex rg4 = new Regex("(?=<TABLE).*?(?=</TABLE>)");   //获取卡号归属地
            var strresult4 = rg4.Match(html).Groups[0];
            Response.Write(strresult4);


            Regex rg5 = new Regex("(?<=noswap>).*?(?=<)");   //获取手机号段
            var strresult5 = rg5.Match(html).Groups[0];
            Response.Write(strresult5);

            Regex rg6 = new Regex("(?<=tdc2>).*?(?=<a)");   //获取电话号码
            var strresult6 = rg6.Match(html).Groups[0];
            Response.Write(strresult6);

            //Regex rg2 = new Regex("(?<=tdc2>).*?(?=</a)");   //获取邮编
            //var strresult2 = rg2.Match(html).Groups[0];
            //Response.Write(strresult2);


            //Regex rg = new Regex("(?<=\"username\">).*?(?=<)");         //获取用户名
            //Regex rg1 = new Regex("(?<=\"z\\s+psw_w\">).*?(?=<)");      //获取密码
            //var strresult = rg.Match(html).Groups[0];
            //var strresult1 = rg1.Match(html).Groups[0];
            //Response.Write(strresult);
            //Response.Write(strresult1);


            Regex rg0 = new Regex("(?<=\"center\">).*?(?=<)");       //获取卡号归属地
            var strresult0 = rg0.Match(html).Groups[0];
            Response.Write(strresult0);



            //Regex rg = new Regex("/(?<=("+username+"))(?=)/");
            //var strresul = rg.Match(html).Groups;
            //Response.Write(strresul);
            ////要Post的数据
            //string postdate = "a=123&c=456&d=789";
            ////将Post数据转为字节数组
            //byte[] bytedate = System.Text.Encoding.UTF8.GetBytes(postdate);
            ////创建Httphelper对象
            //HttpHelper http = new HttpHelper();
            ////创建Httphelper参数对象
            //HttpItem item = new HttpItem()
            //{
            //    URL = "http://www.sufeinet.com",//URL     必需项   
            //    Method = "post",//URL     可选项 默认为Get   
            //    ContentType = "application/x-www-form-urlencoded",//返回类型    可选项有默认值
            //    PostDataType = PostDataType.Byte,
            //    PostdataByte = bytedate
            //};
            ////请求的返回值对象
            //HttpResult result = http.GetHtml(item);
            ////获取请请求的Html
            //string html = result.Html;
            ////获取请求的Cookie
            //string cookie = result.Cookie;


            ////要Post的数据
            //string postfile = @"D:\postdata.txt";
            ////将Post数据转为字节数组
     
            ////创建Httphelper对象
            //HttpHelper http = new HttpHelper();
            ////创建Httphelper参数对象
            //HttpItem item = new HttpItem()
            //{
            //    URL = "http://www.sufeinet.com",//URL     必需项   
            //    Method = "post",//URL     可选项 默认为Get   
            //    ContentType = "application/x-www-form-urlencoded",//返回类型    可选项有默认值
            //    PostDataType = PostDataType.FilePath,
            //    Postdata = postfile
            //};
            ////请求的返回值对象
            //HttpResult result = http.GetHtml(item);
            ////获取请请求的Html
            //string html = result.Html;
            ////获取请求的Cookie
            //string cookie = result.Cookie;

        }
    }
}

我是要用你的那个HttpHelper万能框架找那个查电话号码的网站,然后把查询网站的号码归属地还有区号什么的截取出来

<TD width=* align="center" class=tdc2>安徽&nbsp;马鞍山市</TD>
就是要截取tdc2>  </TD>中间的数据
发表于 2017-3-2 14:20:46 | 显示全部楼层
我上面的就可以吧
 楼主| 发表于 2017-3-17 12:24:48 | 显示全部楼层
谢谢  。。真的感谢。。。可以
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-19 17:51

© 2014-2021

快速回复 返回顶部 返回列表