Python findall正则表达式问题

Python findall正则表达式问题,python,regex,findall,Python,Regex,Findall,所以,基本上我的主要问题来自findall的正则表达式部分。我试图从网上搜集一些信息,但我一生都无法获得任何正确的数据。我认为\S+\S+是regex部分,我将从和的HTML代码之间的任何部分提取,但是相反,我从printdata中得到一个空列表。我意识到每个列表代码部分中的每个单词都需要一个\S+,那么我该怎么做呢?另外,我如何让它发布HTML的每个不同部分以及列表代码部分 输入:只是网站。Mikky Ekko-时间 import urllib.request from re import f

所以,基本上我的主要问题来自findall的正则表达式部分。我试图从网上搜集一些信息,但我一生都无法获得任何正确的数据。我认为\S+\S+是regex部分,我将从和的HTML代码之间的任何部分提取,但是相反,我从printdata中得到一个空列表。我意识到每个列表代码部分中的每个单词都需要一个\S+,那么我该怎么做呢?另外,我如何让它发布HTML的每个不同部分以及列表代码部分

输入:只是网站。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)
输出:在这种情况下,应该是专辑标题,即Mikky Ekko-Time

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)
试试这个。这将给出标签的所有内容。旗帜。见演示

使用


使用正则表达式解析HTML的第一步是永远不要使用正则表达式解析HTML。使用像BeautifulSoup这样的库。我希望,但是我们的类必须使用urllib,我不知道如何使用BeautifulSoul。我尝试过这个,但它给了我每一行HTML,但去掉了标记。re.DOTALL如何工作?data=findall]*>?:?!*,htmlStr,re.dotal出于某种原因使用它,它说re实际上没有定义,我只是导入了re,但是我得到了与我之前得到的相同的东西,如果你从re import findall代码中删除了代码,你会得到一个findall未定义的错误检查我刚才所做的编辑。基本上,如果我从re import findall和import re中得到了这两个代码,我就得到了我在开始时得到的所有代码行。如果我去掉from findall行并输入import re,那么我会得到一个findall错误,因为我没有模块,所以它不会让我这样做,即使我尝试导入它
import lxml.html

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