Um ein bisschen mehr auf die @Bob's answer hinzufügen und unter der Annahme, Sie müssen auch das script
Tag im HTML finden, das andere script
Tags haben kann.
Die Idee ist, einen regulären Ausdruck zu definieren, die sowohl für locating the element with BeautifulSoup
und Extrahieren des email
Wert verwendet werden würde:
import re
from bs4 import BeautifulSoup
data = """
<body>
<script>jQuery(window).load(function() {
setTimeout(function(){
jQuery("input[name=Email]").val("[email protected]");
}, 1000);
});</script>
</body>
"""
pattern = re.compile(r'\.val\("([^@][email protected][^@]+\.[^@]+)"\);', re.MULTILINE | re.DOTALL)
soup = BeautifulSoup(data, "html.parser")
script = soup.find("script", text=pattern)
if script:
match = pattern.search(script.text)
if match:
email = match.group(1)
print(email)
Drucke: [email protected]
.
Hier verwenden wir eine simple regular expression for the email address, aber wir können weiter gehen und strenger sein, aber ich bezweifle, dass das für dieses Problem praktisch notwendig wäre.