繁体   English   中英

Python Findall正则表达式问题

[英]Python findall regex issue

因此,基本上我的主要问题来自findall的正则表达式部分。 我正在尝试对某些信息进行网络抓取,但是我一生都无法正确获取任何数据。 我以为(\\ S + \\ S +)是正则表达式的一部分,我会从<li></li>的HTML代码之间的任何部分中提取出来,但是我却从print(数据)。 我意识到我将需要为每个列表代码部分中的每个单词使用\\ S +,所以我将如何处理呢? 另外,如何获得将HTML的每个不同部分与列表代码部分一起发布的信息?

输入:仅网站。

  • Mikky Ekko-时间
  • 输出:在这种情况下,它应该是专辑标题(即Mikky Ekko-时间)

    import urllib.request
    from re import findall
    url = "http://rnbxclusive.se"
    
    response = urllib.request.urlopen(url)
    html = response.read()
    htmlStr = str(html)
    
    data = findall("<li>(\S+ \S+)</li>.*", htmlStr)
    print(data)
    for item in data:
       print(item)
    
    <li>([^><]*)<\/li>
    

    试试这个。这将给出<li>标签的所有内容。 标志。请参阅演示。

    http://regex101.com/r/dZ1vT6/55

    使用lxml

    import lxml.html
    
    doc = lxml.html.fromstring(response.read())
    for li in doc.findall('.//li'):
        print li.text_content()
    

    暂无
    暂无

    声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

     
    粤ICP备18138465号  © 2020-2024 STACKOOM.COM