簡體   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