一周目,爬虫,二日
html内特殊符号、常见标签以及正则表达式
1 特殊符号
html内特殊符号并不是直接打出来的,而是有另外符号的表示
空格
> >
< <
& &
¥ ¥
版权 ©
注册 ®
2 常用标签
链接标签
<a href="网址地址">超链接的名称</a>
图片标签
<img src="图片地址" alt="">
页面布局标签
<div>页面布局标签</div> 内部可以无限嵌套其他标签
页面文本标签
<span>页面文本标签</span> 运用文本时会出现
3 列表标签
<ul>
<li>第一个列表</li>
<li>第二个列表</li>
<li>第三个列表</li>
<li>第四个列表</li>
</ul>
有规则的横向与竖向的内容基本是由列表标签完成,可以通过调节样式来选择横向或竖向
4 表格标签
表格标签的基本句法结构 <table> <thead></thead> 表头数据 <tbody></tbody> 表单数据 </table>
<tr> </tr> 表示单行,中间添加th、tb文本 <th> </th> 类似于mysql的字段名 <td> </td> 表格内的数据

5 表单标签
表单标签一般用于获取用户的数据
<input type='表单类型'>
type类型可以有
1 text 普通文本
2 password 密文展示
3 email 邮箱格式
4 date 日期格式
5 radio 单点,多个选一时需要告诉是统一用户参数
6 checkbox 多选
7 file 文件,加multiple参数可以上传多个
8 submit 提交按钮
9 reset 重置按钮
10 button 普通按钮
select标签 下拉框,需要用option,是select的子标签,可以加multiple改为多选
textarea标签 获取大段文本
6 标签特性
6.1 查找特性
标签中一般含有id和class为标签的属性
6.1.1 id
类似于标签的身份证,用于唯一标识,同一html文档不能重复
6.1.2 class
类似于标签的种族,用于区分不同的类或表示同一类。一个标签可以含有多个class值,类似于混血
标签可以自定义任意属性,如<a username='jason' pwd=123></a>,只是一般都采用id和class
6.2 关系特性
通过包裹,来表名标签之间的关系,可以看成还是一张族谱,以最外层标签为起源的族谱
以表格标签为列 table为父 thead和tbody为子 th、td为孙

7 正则表达式
7.1 使用python与正则表达式的差距
# 纯python代码实现数据校验 # 1.获取用户手机号 phone = input('phone num>>>:').strip() # 2.先判断长度是否是11位 if len(phone) == 11: # 3.再判断是否是纯数字 if phone.isdigit(): # 4.最后判断开头是否是13 14 15 18 if phone.startswith('13') or phone.startswith('14') or phone.startswith('15') or phone.startswith('18'): print('是一个合法的手机号') else: print('手机号格式错误') else: print('手机号必须是纯数字') else: print('手机号必须是11位')
# 借助于正则表达式校验 import re phone_number = input('please input your phone number : ') if re.match('^(13|14|15|18)[0-9]{9}$',phone_number): print('是合法的手机号码') else: print('不是合法的手机号码')
7.2 字符组
字符组在匹配内容的时候是单个单个字符挨个匹配
[0123456789] 匹配0到9之间的任意一个数字包括首尾
[0-9] 简写:匹配0到9之间的任意一个数字包括首尾
[a-z] 匹配小写字母a到z之间的任意一个字母包括首尾
[A-Z] 匹配大写字母A到Z之间的任意一个字母包括首尾
[0-9a-zA-Z] 匹配数字或者小写字母或者大写字母
7.3 符号
符号在匹配内容的时候是单个单个字符挨个匹配
. 匹配除换行符以外的任意字符
\d 匹配数字
^ 匹配字符串的开始
$ 匹配字符串的结尾
a|b 匹配字符a或字符b
() 给正则表达式分组 本身没有任何意义
[...] 匹配字符组中的字符
[^...] 匹配除了字符组中字符的所有字符(取反)
7.4 量词
跟在正则表达式的后面可以一次性匹配多个字符,不能单独出现,默认贪婪匹配
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
7.5 取消贪恋匹配与取消转义
7.5.1 取消贪恋匹配
将贪婪匹配变成非贪婪匹配只需要在量词后面加一个问号即可
7.5.2 取消转义
符号 \ \\,表示用前一个\取消后一个\的转义,匹配 \
如
\n 匹配的是换行符 \\n 匹配的是\n \\\\n 匹配的是\\n
8 模块
# 如果想在python代码中使用正则表达式需要借助于内置模块re
import re
text = '<script>123</script>'
res = re.findall('<.*?>',text)
print(res)