# coding='utf-8'
§§ 1000
+# -*- coding:utf-8 -*-
§§ --- 0x00/0x11.py
§§ 1002
+import re
+data = '''<div class="repo-list">
+ <h3><a href="/Python3WebSpider/Python3WebSpider" class="v-align-middle">Python3WebSpider</a></h3>
+ <div class="f6 text-gray mt-2">
+ <span class="repo-language-color ml-0" style="background-color:#f1e05a;"></span>
+ Python · 2,007 stars </div> </div>'''
§§ --- 0x00/0x11.py
§§ 1003
+res = re.findall('<h3><a href="/(.*?)".*?>(.*?)</a></h3>.*?<span.*?>(.*?)</span>',data,re.S) # 匹配出来的结果是元组()形式的数据,所以要解包取出来用三个变量接收即可。如果不解包则会显示元组形式的数据。这里用到了正则表达式中“?”和“:S”的语法。其中“?”表示非贪婪匹配、尽可能少的匹配字符串;而 “S” 表示 . 可以代表 \n 换行。最后将字符串中要匹配的内容用小括号 ‘()' 括起来即可。 # 由于在正则表达式中使用了 ‘\ ' ,所以在 python 中也要使用 ‘\ ' 进行转义处理。例如将 \d 转化成 \\d ;将 \w 转化成 \\w 等。 # 如果想使得一个字符原样输出时也要加上 ‘\ ' ,例如想原样输出 * 时要写成 \* ;想原样输出 ( 时要写成 \( 等。 # 如果想使得一个字符原样不加任何影响时也是加上 ‘\ ' ,例如想原样不加任何影响时 + 时要写成 \+ ;想原样不加任何影响时 ? 时要写成 \? 等。 # 金泰常说过一句话:有信心就有希望;有希望才能够勇往直前! # 马云也说过一句名言:对于天生对竞争充满好奇心的人来说,竞争并没有多大意义,因为竞争并没有看到真实的风光! # 朱会长也说过一句名人名言:勤勤恳恳、快快乐乐、问问好好、思思新新!''' for i in res:print(i)# Python 3 Web Spider (Python) 2,007 stars print('-'*50)for i in res:# Python 3 Web Spider (Python) 2,007 stars print(i[1],i[2],i[0])# Python 3 Web Spider Python 2,007 stars Python3WebSpiderprint('-'*50)for i in res:# Python 3 Web Spider (Python) 2,007 stars print("RepoName:{} Language:{} Stars:{}".format(*i))# RepoName:Python 3 Web Spider Language:Python Stars:2,007starsprint('-'*50)for name , language , star in res:# Python 3 Web Spider (Python) 2,007 stars print("RepoName:{} Language:{} Stars:{}".format(name , language , star))# RepoName:Python 3 WebSpiderLanguage:PythonsStars :2, 007stars print("RepoName:" + name + "Language:" + language + "Stars:" + star )# RepoName :Pyth on3WebSpide rLanguage :Py thonStar s :2 , 007s tars print("RepoName %s Language %s Stars %s"%(name , language , star))# Rep oNam e Pyt hon 3We bSp ide rLan guag e Pyt hon Star s 20 07sta rs print("RepoName {0} Language {1} Stars {2}" . format (name , language
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!