re


 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:woshinidaye
 4 
 5 import re
 6 import csv
 7 # #findall 匹配字符串中所有符合正则表达式的内容;
 8 # list = re.findall(r'\d+','我的电话号码是133123123123,女朋友的电话是45678')  #返回的是列表,列表效率很低
 9 # print(list)
10 
11 
12 # #re.finditer()   #匹配字符串中所有符合正则表达式的内容,返回的是迭代器,这个效率很OK;从迭代器中拿到内容需要.group()
13 # list2 = re.finditer(r'\d+','我的电话号码是133123123123,女朋友的电话是45678')
14 # #print(list2,type(list2)) # 
15 # for i in list2:
16 #     print(i.group())
17 
18 # #re.search          返回match对象,需要.group一下,search全文检索,检索到一个就结束程序
19 # sear = re.search(r'\d+','我的电话号码是133123123123,女朋友的电话是45678')
20 # print(sear.group())
21 
22 # #re.match是从头开始匹配,可以理解为r'^d+'
23 # mat = re.match(r'\d+','我的电话号码是133123123123,女朋友的电话是45678')
24 # print(mat)
25 
26 #预加载正则表达式,正则很长
27 # obj = re.compile(r'\d+')
28 # # obj.findall()
29 # # obj.search()
30 # test = obj.finditer('我的电话号码是133123123123,女朋友的电话是45678')
31 # for i in test:
32 #     print(i.group())
33 # # obj.match()
34 
35 
36 #   (?P正则表达式)   可以从正则表达式中匹配到的内容中,进一步提取内容,
37 
38 ss = '''
39 
林俊杰
40
不知道
41
乱说
42
啥也不说
43 ''' 44 # ss本身就是一串有规律的字符串,想把id和name拿出来比较困难,所以,需要用正则表达式匹配成一个一个的元素, 45 # aa = re.compile(r"
(?P.*?)
",re.S) #flags=re.S 让.匹配换行符
46 # # print(type(aa)) 47 # bb = aa.finditer(ss) 48 # for it in bb: 49 # print(it.group('id'),it.group("name")) 50 51 52 53 # 实战示例1 54 # 请求一下豆瓣电影top250 55 #查看页面页数的加载方式:发现是 服务器渲染; 56 #拿到页面源代码; 57 #通过re提取有效信息 58 # import re,requests 59 # for n in range(0,250,25): 60 # # url = 'https://movie.douban.com/top250?start=%s&filter='%n 61 # # url = 'https://movie.douban.com/top250?start={0}&filter='.format(n) 62 # url = f'https://movie.douban.com/top250?start={n}&filter=' 63 # # print(url) 64 # header = { 65 # "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" 66 # } 67 # 68 # result = requests.get(url,headers=header) 69 # page = result.text 70 # # with open('1114','w+',encoding='utf-8') as f : #获取页面源代码 71 # # f.write(result.text) 72 # # print(result.text) 73 # 74 # # 解析数据 75 # 76 # obj = re.compile(r'
  • .*?
    .*?(?P.*?)</span>'</span> <span style="color: rgba(0, 128, 128, 1)">77</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> r'.*?<p class="">(?P<actor>.*?)<br>.*?</span>.*?property="v:averag'</span> <span style="color: rgba(0, 128, 128, 1)">78</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> r'e">(?P<score>.*?)</span>',re.S)</span> <span style="color: rgba(0, 128, 128, 1)">79</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> enenn = obj.finditer(page)</span> <span style="color: rgba(0, 128, 128, 1)">80</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> f = open('top250.csv','a+',encoding='utf-8',newline='')</span> <span style="color: rgba(0, 128, 128, 1)">81</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> csvwriter = csv.writer(f)</span> <span style="color: rgba(0, 128, 128, 1)">82</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> for i in enenn:</span> <span style="color: rgba(0, 128, 128, 1)">83</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> # print(i.group('title'))</span> <span style="color: rgba(0, 128, 128, 1)">84</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> # print(i.group('actor').strip())</span> <span style="color: rgba(0, 128, 128, 1)">85</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> dic = i.groupdict()</span> <span style="color: rgba(0, 128, 128, 1)">86</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> dic['title'] = dic['title'].strip()</span> <span style="color: rgba(0, 128, 128, 1)">87</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> dic['actor'] = dic['actor'].strip()</span> <span style="color: rgba(0, 128, 128, 1)">88</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> # print(dic)</span> <span style="color: rgba(0, 128, 128, 1)">89</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> csvwriter.writerow(dic.values())</span> <span style="color: rgba(0, 128, 128, 1)">90</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> f.close()</span> <span style="color: rgba(0, 128, 128, 1)">91</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> print('=====done===')</span></pre> </div> <!--conend--> <div class="p-2"></div> <div class="arcinfo my-3 fs-7 text-center"> <a href='/t/etagid8-0.html' class='tagbtn' target='_blank'>Python</a> </div> <div class="p-2"></div> </div> <div class="p-2"></div> <!--xg--> <div class="lbox p-4 shadow-sm rounded-3"> <div class="boxtitle"><h2 class="fs-4">相关</h2></div> <hr> <div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-566513.html">学习《Python编程从入门到实践》PDF+代码训练</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-566439.html">python-----面向对象简单理解</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-565236.html">python多线程控制</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-564738.html">Sublime 的安装、汉化、配置、Python环境和插件</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-564855.html">python——time strftime() 函数表示当地时间</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-564276.html">python 初识函数</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-564187.html">python 函数对象 嵌套 闭包</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-563864.html">Python栈溢出——设置python栈大小</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-563952.html">python-面向对象-01课堂笔记</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-563329.html">python爬虫</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-563001.html">Python 之父的解析器系列之五:左递归 PEG 语法</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div><div class="row g-0 py-2 border-bottom align-items-center"> <div class="col-7 col-lg-11 border-lg-end"> <h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-563230.html">Python 为了提升性能,竟运用了共享经济</a></h3> <div class="ltag fs-8 d-none d-lg-block"> </div> </div> </div> <!----> <!----> </div> <!--xgend--> </div> <div class="col-lg-3 col-12 p-0 ps-lg-2"> <!--box--> <!--boxend--> <!--<div class="p-2"></div>--> <!--box--> <div class="lbox p-4 shadow-sm rounded-3"> <div class="boxtitle pb-2"><h2 class="fs-4"><a href="#">标签</a></h2></div> <div class="clearfix"></div> <ul class="m-0 p-0 fs-7 r-tag"> </ul> <div class="clearfix"></div> </div> <!--box end--> </div> </div> </div> </main> <div class="p-2"></div> <footer> <div class="container-fluid p-0 bg-black"> <div class="container p-0 fs-8"> <p class="text-center m-0 py-2 text-white-50">一品网 <a class="text-white-50" href="https://beian.miit.gov.cn/" target="_blank">冀ICP备14022925号-6</a></p> </div> </div> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6e3dd49b5f14d985cc4c6bdb9248f52b"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </footer> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.min.js"></script> </body> </html>