一周目,爬虫,二日

html内特殊符号、常见标签以及正则表达式

1  特殊符号

html内特殊符号并不是直接打出来的,而是有另外符号的表示

空格
&nbsp; > &gt; < &lt; & &amp; ¥ &yen; 版权 &copy; 注册 &reg;

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位')    
View Code
#    借助于正则表达式校验
        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('不是合法的手机号码')
View Code

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)

 

posted @ 2021-09-14 20:58  aa_wang  阅读(33)  评论(0)    收藏  举报