重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
python提取html内容的方法。如下参考:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了泾县免费建站欢迎大家使用!
1.首先,打开Python来定义字符串,在定义的字符串后面加上中括号,然后在要提取的字符位置输入zhidao。
2.点击运行程序,可以看到系统打印出的第一个字符在我们定义的字符串中,因为字符串是空格,空格占据了位置。
3.这里可以看到字符显示在程序运行界面的底部,根据我们指定的内容输出,这里写的版本是0输出的第一个字符。
4.还可以一次打印多个字符。如图所示,用冒号分隔字符串的开头,并将其写入方括号中以显示多个字符。
5.这里的输入位置是0到5,你可以发现,与我们的字符串内容相比,字符的相应位置被打印出来,而字符的另一个位置则完全不显示。
6.如果字符串比较大,大于内容的权重,从下面的数字比较方便,也可以直接输出倒数的字符。
7.这时直接用负号来表示这是倒数的位置,它使用起来也特别方便。
python 根据正则表达式提取指定的内容
正则表达式是极其强大的,利用正则表达式来提取想要的内容是很方便的事。
下面演示了在python里,通过正则表达式来提取符合要求的内容。
实例代码:
import re# 正则表达式是极其强大的,利用正则表达式来提取想要的内容是很方便的事。# 下面演示了在python里,通过正则表达式来提取符合要求的内容。有几个要注意# 的地方就是:# [1] 要用()将需要的内容包含起来# [2] 编号为0的group是整个符合正则表达式的内容,编号为1的是第一个(及对应# 的)包含的内容# @param regex: regular expression, use () to group the result# 正则表达式,用()将要提取的内容包含起来# @param content: # @param index: start from 1, depends on the \p regex's ()# 从1开始,可以通过数(来得到,其中0是全部匹配# @return: the first match of the \p regex# 只返回第一次匹配的内容def extractData(regex, content, index=1): r = '0' p = re.compile(regex) m = p.search(content) if m: r = m.group(index) return r regex = r'第(.*)场雪'content = '2002年的第一场雪'index = 1print extractData(regex, content, index)
(1)re.match()函数
re.match 尝试从字符串的开始匹配一个模式。
函数语法:
re.match(pattern, string, flags=0)
函数参数说明:
参数
描述
pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
匹配成功re.match方法返回一个匹配的对象,否则返回None。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
匹配对象方法
描述
group(num=0) 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups() 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。
(2)re.research()函数
re.search匹配整个字符串,直到找到一个匹配。
函数语法:
re.search(pattern, string, flags=0)
函数参数说明:
参数
描述
pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
匹配成功re.search方法方法返回一个匹配的对象,否则返回None。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
匹配对象方法
描述
group(num=0) 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups() 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。
(3)实例
我这里采用re.search()函数解决的问题。
测试数据集为购物网站用户评论
实例代码:
[python] view plain copy
# -*-coding:utf-8 -*-
import sys
import re
reload(sys)
text = open('JD_DFB_comments.txt')
line = text.readline()
#i = 0
while line:
#i = i+1
#re.search匹配整个字符串,直到找到一个匹配。
n1 = re.search(r'(要(是|能)(.*)就(更|好|再|直观|完美|太)(.*)了)',line)
n2 = re.search(r'(如果)(.*)就(更|好|再|直观|完美|太)(.*)了',line)
#打开将要写入的数据
data = open('aa.txt','a')
if n1:
#print line
data.write(line) #写入匹配到的数据
#print i 记录匹配结果所在的行数
#print n1.group() #等于print line
print n1.group(3) #打出第三个括号里的内容
if n2:
#print n2.group()
print n2.group(2)
line = text.readline()
text.close()
阅读更多
个人分类: Python语言
想对作者说点什么? 我来说一句
Python中re的match、search、findall、finditer区别
Python 的re模块提供了re.sub用于替换字符串中的匹配项。
语法:
re.sub(pattern, repl, string, count=0)
参数:
pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
实例:
注:re.sub(r'[a-zA-Z",:{}]', "", data),中括号表示选择其中的任意元素,a-zA-Z表示任意字母。