Pythonic方式找到正则表达式匹配

aar*_*acy 2 python regex

是否有更简洁/正确/ pythonic方式来执行以下操作:

url = "http://0.0.0.0:3000/authenticate/login"
re_token = re.compile("<[^>]*authenticity_token[^>]*value=\"([^\"]*)")
for line in urllib2.urlopen(url):
    if re_token.match(line):
        token = re_token.findall(line)[0]
        break
Run Code Online (Sandbox Code Playgroud)

我想从HTML页面获取名为"authenticity_token"的输入标记的值:

<input name="authenticity_token" type="hidden" value="WTumSWohmrxcoiDtgpPRcxUMh/D9m7O7T6HOhWH+Yw4=" />
Run Code Online (Sandbox Code Playgroud)

Bar*_*tek 6

你可以用美味汤吗?代码基本上看起来像这样:

from BeautifulSoup import BeautifulSoup
url = "hhttp://0.0.0.0:3000/authenticate/login"
page = urlli2b.urlopen(page)
soup = BeautifulSoup(page)
token = soup.find("input", { 'name': 'authenticity_token'})
Run Code Online (Sandbox Code Playgroud)

这样的事情应该有效.我没有对此进行测试,但您可以阅读文档以确保准确无误.