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

[复制链接]
发表于 2025-10-14 14:53:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
编写步伐实现以下功能:使用正则表达式得到一段HTML文本中全部超链接对应的网址,并将网址输出到屏幕上(每行输出一个网址)。
输入格式:

从键盘输入 一段HTML文本,多行输入,空行输入 竣事。
输特别式:

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

在这里给出一组输入。比方:
  1. <h3 class="c-title">
  2. <a href="https://baijiahao.baidu.com/s?id=1633289774665320636&amp;wfr=spider&amp;for=pc" data-click="{
  3.       'f0':'77A717EA',
  4.       'f1':'9F63F1E4',
  5.       'f2':'4CA6DE6E',
  6.       'f3':'54E5243F',
  7.       't':'1557660267'
  8.       }" target="_blank">
  9.       影片《周恩来回延安》在<em>南开大学</em>点映开启全国路演
  10.     </a>
  11. </h3>
  12. <a href="https://baijiahao.baidu.com/s?id=1632116753423885280&amp;wfr=spider&amp;for=pc" data-click="{
  13.       'f0':'77A717EA',
  14.       'f1':'9F73F1E4',
  15.       'f2':'4CA6DE6E',
  16.       'f3':'54E5243F',
  17.       't':'1557660267'
  18.       }" target="_blank">
  19.       天津“<em>南开大学</em>”——莘莘学子的梦想之地
  20.     </a>
  21.         
复制代码
输出样例:

在这里给出相应的输出。比方:
  1. https://baijiahao.baidu.com/s?id=1633289774665320636&amp;wfr=spider&amp;for=pc
  2. https://baijiahao.baidu.com/s?id=1632116753423885280&amp;wfr=spider&amp;for=pc
复制代码
  1. import re
  2. def extract_urls(html_text):
  3.     pattern=r'<a\s+[^>]*?href\s*=\s*["\'](.*?)["\']'
  4.     urls =re.findall(pattern,html_text)
  5.     return urls
  6. def main():
  7.     html_text=""   
  8.     while True:
  9.         try:
  10.             line=input()
  11.             if(line.strip()==""):
  12.                 break
  13.             html_text+=line+"\n"
  14.         except EOFError:
  15.             break
  16.     urls=extract_urls(html_text)
  17.     for url in urls:
  18.         print(url)
  19. if __name__ == "__main__":
  20.     main()
复制代码
 
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表