m0_62444740 2023-10-13 12:49 采纳率: 40%
浏览 10

上信考python二三级文本处理

题目

img

待处理的文本文件
[](通过百度网盘分享的文件:people.html
链接:https://pan.baidu.com/s/1k2t5LbQB6SEMCKW74EomTA
提取码:hd9A
复制这段内容打开「百度网盘APP 即可获取」)

感觉好难处理。主要就是这一部分代码如何提取出来,在用正则表达式匹配这段里面的连接
该段内容标签带数字可能是一个切入点,其他部分的标签内容不带数字

# <span class="defaultmenu">旗下网站
#<ul>
# li><a href="http://paper.people.com.cn/xwzx/paperindex.htm            
#     " target="_blank">40091新闻战线</a></li>
#</ul>
# </span>

# r'<{}>(.*?)</{}>'  匹配标签内容


  • 写回答

1条回答 默认 最新

  • 7*24 工作者 2023-10-13 14:36
    关注
    
    html = open('people.html','rb').read().decode('utf-8')
    
    ## 利用正则表达式提起数据,需要提取2次才能获取结果
    
    import re
    regex1 = re.compile('<span class="defaultmenu">旗下网站([\S\s\w]+?)</span>')
    data1 = re.findall( regex1,html )[0]
    
    regex2 = re.compile('<li><a href="(.*?)" target="_blank">(.*?)</a></li>')
    data2 = re.findall( regex2,data1 )
    for item in data2:
        url,name = item
        print(name,url)
    
    ##利用 lxml 模块提取数据
    from lxml import etree
    html = etree.HTML(html)
    
    lis = html.xpath('//span[@class="defaultmenu"][3]/ul/li')   #[3] 表示 span[@class="defaultmenu"] 第3for li in lis:
        name = li.xpath('./a/text()')[0].strip()
        url = li.xpath('./a/@href')[0].strip()
        print(name,url)
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月13日

悬赏问题

  • ¥15 hive on spark
  • ¥15 星穹铁道中的ai自动战斗逻辑
  • ¥15 SimpleHook 一下android fake模块的VIP日期
  • ¥15 如何在VBA中利用word的错词提示功能识别word文本中的错别字并标注
  • ¥15 jupyter notebook无法识别的空格,如何解决?(语言-python)
  • ¥15 自动回复评论的小插件
  • ¥20 用c++完成两道大题,要求提供.h和.cpp,以及用来测试的main.cpp
  • ¥15 2024电赛H题指导
  • ¥15 第三方如何控制E8a进行烧录
  • ¥15 关于lua调用DLL的c/c++动态库(相关搜索:数据库)