在GitHub上發現一些很有意思的項目,由于本人作為Python的初學者,程式設計代碼能力相對薄弱,為了加強Python的學習,特此利用前輩們的學習知識成果,自己去親自實作。
來源:GitHub
Python練手小程式項目位址:https://github.com/Show-Me-the-Code/python
寫作日期:2019.12.27
今天練習第0009題,題目如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLzkDOxITMygTM3IjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
先看一下HTML這個頁面和源碼吧
很簡單,和上次提取HTML檔案正文類似,這次還是用正規表達式提取URL,規則寫的比較粗糙,主要提取href="url" target="_blank" rel="external nofollow" 中的,更多不符合條件的就沒怎麼提取,但也包含HTML檔案的很多了!
下次準備專門針對Python的正規表達式寫一篇文章,主要涉及一些用法,學會熟練運用!
Python代碼如下:
import re
import codecs
def read_html(path):
"""
讀取html檔案
:param path:
:return: 字元串類型
"""
with codecs.open(path, 'r', encoding='utf-8') as f:
html = f.read()
return html
def parse_url(html):
"""
抽取html中的連結URL
:param html:
:return:
"""
# r'<a.*?href="https://.*?" target="_blank" rel="external nofollow" '
pattern = re.compile(r'"(https://.*?|http://.*?)"')
urls = re.findall(pattern, html)
for url in urls:
print(url)
if __name__ == '__main__':
path = 'trigram.htm'
html = read_html(path)
parse_url(html)
看下結果展示: