我是靠谱客的博主 自信金毛,最近开发中收集的这篇文章主要介绍正则小案例(手机号、邮箱、URL、身份证、古诗文爬虫),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.验证手机号码(第一位是1,第二位是[34578]中一位,其余位数字即可)

import re
text = '1357032****' # 敏感信息,自行定义
if text.__len__() != 11:
    print("phone number'length is error!")
else:
    try:
        ret = re.match('1[34578]d{9}', text)
        print(ret.group())
    except AttributeError:
        print('匹配到非数字字符', text)
    else:
        print('正确手机号码:', ret.group())

2.验证邮箱

text = '594398***@163.com'  # 敏感信息,自行定义
ret =re.match('w+@[a-z0-9]+.[a-z]+', text) # @的前面可以是字母数字下划线,所以用w
print(ret.group())

3.验证URL

text = 'https://www.runoob.com/python/python-exceptions.html'
ret = re.match('(http|https|ftp)://[^s]+', text)
print(ret.group())

4.验证身份证:

text = '44262319980425***X'  # 敏感信息,自行定义
ret = re.match('d{17}[dxX]', text)
print(ret.group())

5.综合实战(古诗文爬虫)

import re
import requests


def prase_page(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
    }
    resp = requests.get(url, headers=headers)
    text = resp.text
    titles = re.findall(r'<div class="sons">.*?<b>(.*?)</b>', text, re.DOTALL)
    dynasties = re.findall(r'<p class="source">.*?<a.*?>(.*?)</a>.*?<span>', text, re.DOTALL)
    authors = re.findall(r'<p class="source">.*?</span>.*?<a.*?>(.*?)</a>', text, re.DOTALL)
    contents_tags = re.findall(r'<div class="contson".*?>(.*?)</div>', text, re.DOTALL)
    contents = []
    for content in contents_tags:
        contents_temp = re.sub('<.*?>', '', content)
        contents.append(contents_temp.strip())
#方式一二三,自行打开/注释即可
    # 方式一:默认匹配每项输出作者,朝代,内容
    # for i in range(len(contents)):
    #     print('诗题:', titles[i])
    #     print('作者,朝代:', dynasties[i], authors[i])
    #     print(contents[i])
    #     print('#' * 50)

    # 方式二:各个项目进行组合
    # test = []
    # for i in range(len(authors)):
    #     value = {
    #         'title': titles[i],
    #         'dynasty': dynasties[i],
    #         'author': authors[i],
    #         'content':contents[i]
    #     }
    #     test.append(value)
    # for i in test:
    #     print(i)
    #     print('#' * 50)

    # 方式三:zip匹配索引相同的各个项目
    poems = []
    for value in zip(titles, dynasties, authors, contents):
        title, dynasty, author, content2 = value
        poem = {
            'title': title,
            'dynasty': dynasty,
            'author': author,
            'content': content2
        }
        poems.append(poem)
    for poem in poems:
        print(poem)
        print('#' * 80)


def main():
    for x in range(1,11):
        url = "https://www.gushiwen.org/default_%s.aspx" % x
        prase_page(url)


if __name__ == '__main__':
    main()

最后

以上就是自信金毛为你收集整理的正则小案例(手机号、邮箱、URL、身份证、古诗文爬虫)的全部内容,希望文章能够帮你解决正则小案例(手机号、邮箱、URL、身份证、古诗文爬虫)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部