目录

7-14-利用正则表达式得到一段HTML文本中所有超链接对应的网址

7-14 利用正则表达式得到一段HTML文本中所有超链接对应的网址

编写程序实现以下功能:利用正则表达式得到一段HTML文本中所有超链接对应的网址,并将网址输出到屏幕上(每行输出一个网址)。

输入格式:

从键盘输入 一段HTML文本,多行输入,空行输入 结束。

输出格式:

输出从HTML文本中提取到的超链接所对应的网址,一行一个网址。

输入样例:

在这里给出一组输入。例如:

<h3 class="c-title">
 <a href="https://baijiahao.baidu.com/s?id=1633289774665320636&amp;wfr=spider&amp;for=pc" data-click="{
      'f0':'77A717EA',
      'f1':'9F63F1E4',
      'f2':'4CA6DE6E',
      'f3':'54E5243F',
      't':'1557660267'
      }" target="_blank">
      影片《周恩来回延安》在<em>南开大学</em>点映开启全国路演
    </a>
</h3>
<a href="https://baijiahao.baidu.com/s?id=1632116753423885280&amp;wfr=spider&amp;for=pc" data-click="{
      'f0':'77A717EA',
      'f1':'9F73F1E4',
      'f2':'4CA6DE6E',
      'f3':'54E5243F',
      't':'1557660267'
      }" target="_blank">
      天津“<em>南开大学</em>”——莘莘学子的梦想之地
    </a>
        

输出样例:

在这里给出相应的输出。例如:

https://baijiahao.baidu.com/s?id=1633289774665320636&amp;wfr=spider&amp;for=pc
https://baijiahao.baidu.com/s?id=1632116753423885280&amp;wfr=spider&amp;for=pc
import re

def extract_urls(html_text):
    pattern=r'<a\s+[^>]*?href\s*=\s*["\'](.*?)["\']'
    urls =re.findall(pattern,html_text)
    return urls

def main():
    html_text=""    
    while True:
        try:
            line=input()
            if(line.strip()==""):
                break
            html_text+=line+"\n"
        except EOFError:
            break
    urls=extract_urls(html_text)
    for url in urls:
        print(url)
if __name__ == "__main__":
    main()