我有一个问题是当标签位置是动态时如何从输入html获取值。这是示例输入:
<input type="text" autocomplete="" name="confirmedEmailAddress" id="emailaddress" maxlength="60" value="[email protected]" class="txt-box txtbox-m " aria-describedby="" aria-required="true" disabled="disabled">
<input type="text" autocomplete="" value="[email protected]" name="confirmedEmailAddress" id="emailaddress" maxlength="60" class="txt-box txtbox-m " aria-describedby="" aria-required="true" disabled="disabled">
这是我能够做到的,但是在第二个例子中无法检测id位置之前的标签值位置。
/<input(?:.*?)id=\"emailaddress\"(?:.*)value=\"([^"]+).*>/i
你可以试试这个:
<input.*?(?:id=\"emailaddress\".*?value=\"([^"]+)|value=\"([^"]+).*?id=\"emailaddress\")[^>]*>
匹配项显示在右侧窗格中(由于某种原因在测试字符串上不可见)。由于有一个|
,你必须同时检查第1组和第2组。
正如许多人所指出的那样,如果可以避免使用正则表达式,这不是应该做的事情。
您可以使用“Beautiful Soup”模块。
from bs4 import BeautifulSoup
html = '''<input type="text" autocomplete="" name="confirmedEmailAddress" id="emailaddress" maxlength="60" value="[email protected]" class="txt-box txtbox-m " aria-describedby="" aria-required="true" disabled="disabled">
<input type="text" autocomplete="" value="[email protected]" name="confirmedEmailAddress" id="emailaddress" maxlength="60" class="txt-box txtbox-m " aria-describedby="" aria-required="true" disabled="disabled">'''
soup = BeautifulSoup(html,"lxml")
print(soup.find(id="emailaddress")['value'])
在前端应用程序中,您可以使用jquery.js吗?
$("#emailaddress").val()
document.getElementById('emailaddress').value