ASP提取html内指定内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP提取html内指定内容相关的知识,希望对你有一定的参考价值。

一个网页源码(.../News.asp?classID=41),页面执行结果<td width="46" height="26" background="img/08.jpg"> </td> <td width="954" align="left" background="img/08.jpg"><img src="img/15.jpg" width="12" height="14" /><span class="lz">站内导航:</span><a href="index.asp">首页</a>>-<a href="News.asp?classID=41">新闻开始</a></td>......<!--新闻代码部分--->..... <td align="center" bgcolor="#FFFFFF"> <A HREF='News.asp?classID=41&Page=1'>新闻结束</A></....... 我想获取这段复杂的html代码中"新闻开始"和"新闻结束"之间的代码.怎么做?已定义好的getHTTPPage功能语句能获取其HTML内容。 Html = getHTTPPage(../News.asp?classID=41) myStr = Replace(Html , "新闻开始","")...

Public Function CheckName(Str)
Checkname=True
Dim Rep,pass
Set Rep=New RegExp ' 建立正则表达式。
Rep.Global=True '设置全局可用性。
Rep.IgnoreCase=True'设置是否区分字符大小写
'设置模式。
Rep.Pattern="[u0009u0020u0022-u0028u002C-u002Eu003A-u003Fu005Bu005Cu0060u007Cu007Eu00FFuE5E5]"
Set pass=Rep.Execute(Str) '对指定的字符串执行正则表达式搜索。
If pass.count<>0 Then CheckName=False
'response.Write(Checkname)
'response.End()
Set Rep=Nothing
End Function
参考技术A Html = getHTTPPage(../News.asp?classID=41)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = "新闻开始(.*)新闻结束"
regEx.IgnoreCase = False
regEx.Global = False
myStr=regEx.Replace(Html, "$1")

python之路:始解

此章涉及到的是反射机制

 

反射主要涉及到以下方法:

  hasattr、getattr、setattr、delattr

首先说明他们的作用:

  hasattr是用来判断在指定范围内是否存在指定内容的方法

  getattr是用来从指定范围内取出指定内容的方法

  setattr是用来设置指定范围内指定内容的值的方法

  delattr是用来从指定范围内删除指定内容的方法

 

将这四者串起来的话,首先要从hasattr说起。

  比如:

class Person():
    def __init__(self,name,age,gender):
        self.name=name
        self.age=age
        self.gender=gender
    def talk(self):
        print("%s is talking"%self.name)


d=Person("liu",26,"male")
select=input("请输入要执行的函数:")
if hasattr(d,select)==True:
    print("此类存在")
else:
    print("此类不存在")

  输入talk,则会返回此类存在。

  输入其他值,则会返回此类不存在

 

用了hasattr判断完对象是否存在之后,我们就可以使用getattr取出该对象,如果该对象是个方法的话,那么就可以直接运行此方法,如果该对象是个参数的话,那么我们就可以直接得到该值。

class Person():
    def __init__(self,name,age,gender):
        self.name=name
        self.age=age
        self.gender=gender
    def talk(self):
        print("%s is talking"%self.name)


d=Person("liu",26,"male")
select=input("请输入要执行的函数:")
if hasattr(d,select)==True:
   getattr(d,select)()
else:
    print("此类不存在")

输出的结果为:

技术分享

技术分享

 

在用getattr找到指定内容后,可能还会涉及到更改其值。如果真的需要更改值,那么就需要到了setattr这个函数。

class Person():
    def __init__(self,name,age,gender):
        self.name=name
        self.age=age
        self.gender=gender
    def talk(self):
        print("%s is talking"%self.name)


d=Person("liu",26,"male")



d.talk()
select=input("请输入要执行的函数:")
if hasattr(d,select)==True:
   setattr(d,"name","zhao")
   getattr(d,select)()
else:
    print("此类不存在")

运行该函数可以得到以下结果:

技术分享

 

最后如果想要删除某些内容,可以调用delattr来进行相关内容的删除。

class Person():
    def __init__(self,name,age,gender):
        self.name=name
        self.age=age
        self.gender=gender
    def talk(self):
        print("%s is talking"%self.name)


d=Person("liu",26,"male")
d.talk()
# delattr(d,"age")
d.talk()
print(d.age)
# delattr(d,"name")
d.talk()

按照以上代码运行,最终结果为:

技术分享

若将注释掉的代码回复,则结果变为:

技术分享

可以对其进行异常处理:

d=Person("liu",26,"male")
d.talk()
delattr(d,"age")
d.talk()
if hasattr(d,"age")==True:
    print(d.age)
else:
    print("age被删除")
delattr(d,"name")
if hasattr(d,"name"):
    d.talk()
else:
    print("name被删除")

结果就不会涉及报错了:

技术分享

 

以上是关于ASP提取html内指定内容的主要内容,如果未能解决你的问题,请参考以下文章

C# 正则表达式提取指定文本内的内容

C# 正则表达式提取指定文本内的内容

C# 正则表达式提取指定文本内的内容

C# 正则表达式提取指定文本内的内容

使用 awk getline bash 在指定的时间范围内从日志文件中提取数据

提取指定内容