python正则网页
‘壹’ python 正则化匹配html网页尖括号 匹配不了
正确的html闭标签里,是以/开头的,所以网页的源代码不可能是<\/span>,<span class=\"name\">小小少年lala<\/span>\r\n\t里的前三个\是为了在字符串里显示“和/而已,并不是字符串的内容。
网页应该是
<span class="name">小小少年lala</span>\r\n\t
你的正则应该用
p=re.compile('<span class="name">(.*)<\/span>')
‘贰’ python 正则获取网页内容
importre
#id=45717
common_log_format_regex=re.compile('id=d+')
files=open("aaa.txt",'r',encoding='utf-8')
lines=files.readlines()
txt=''.join(lines)
files.close()
data=common_log_format_regex.findall(txt)
writer=open("id.txt",'w',encoding='utf-8')
writer.write(' '.join(data))
writer.close()
‘叁’ 基于Python正则表达式提取搜索结果中的站点地址
正则表达式对于Python来说并不是独有的,最近在把google搜索的结果中所有的站点地址导出,于是想到用python正则表达式提取搜索结果中的站点地址。
这其中涉及几个需要解决的问题:
1、获取搜索的结果文本
为了获得更多的地址,我使用了Google的高级搜索功能,每个页面显示100条结果。
获得显示的结果后,可以查看源码,并保持成文本文件就有了搜索的结果文本
2、分析如何提取站点信息
首先需要分析获取的页面,查看以怎样的方式可以提取出站点信息。
我使用IE8自带的开发工具(按F12就会弹出来)中的探查器功能查看自己要关心的内容有什么特殊的格式
从上图可以看出我需要的站点在标签<cite></cite>中,所以我使用正则表达式提取这其中的文本是否就可以呢?
3、编写正则表达式来获取站点地址
接下来的就是写表达式了,我使用Python3.2编写的,方便好用(~_~)
代码如下,先把搜索结果页面保持到e:/t3.txt中,在执行如下代码
import
re
p
=
re.compile(r'<cite>([^<>/].+?)</cite>')
f
=
open("e:/t3.txt",
encoding='utf-8')
content
=
f.read()
print
("
".join(p.findall(content)))
运行如下:
大家可以对照一下运行效果图,看看所有的站点地址是不是都给获取到了。
‘肆’ Python正则表达式的几种匹配方法
1.测试正则表达式是否匹配字符串的全部或部分
regex=ur"" #正则表达式
if re.search(regex, subject):
do_something()
else:
do_anotherthing()
2.测试正则表达式是否匹配整个字符串
regex=ur"/Z" #正则表达式末尾以/Z结束
if re.match(regex, subject):
do_something()
else:
do_anotherthing()
3.创建一个匹配对象,然后通过该对象获得匹配细节(Create an object with details about how the regex matches (part of) a string)
regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
# match start: match.start()
# match end (exclusive): atch.end()
# matched text: match.group()
do_something()
else:
do_anotherthing()
4.获取正则表达式所匹配的子串(Get the part of a string matched by the regex)
regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
result = match.group()
else:
result = ""
‘伍’ python正则表达式去掉网址数字l
可以使用Python的regex模块并re.sub()替换要摆脱的任何字符。
您既可以使用黑名单替换所有不需要的字符,也可以对所有希望允许的字符使用白名单,仅保留这些字符。
在python中,所谓的“正则表达式”指的是通常被用来检索、替换那些符合某个模式的一段文本。具体而言,它的作用是检测某个字符串是否符合规则和提取网页字符串中想要的数据。
‘陆’ python 正则表达式
[A-Za-z]\w+ :由开头的1个大写或者小写的字母加上至少1个 字符来匹配
比如 Aaa,Aa
4xZ匹配不到,xZ4可以匹配。