我正在尝试从一组源代码中复制电子邮件地址。可以将数据作为<a href>
标记的属性找到。就是这样:data-email="example@email.com"
我对正则表达式很陌生,想出了这个:/\w+\s*=\s*".*?"/
但它似乎不起作用。全面了解这一切都很困难。
我该怎么办?
感谢任何帮助。
答案 0 :(得分:2)
如果您的源代码是HTML,那么使用HTML解析器会更容易吗?您可以使用lxml,例如:
from lxml import etree
html = etree.HTML("""
<html>
<head>
<title>History of Roundish Stones in the Paleozoic Era</title>
</head>
<body>
<a href="#" data-email="example@email.com">Andrew S. Johnson</a>
<a href="#" data-email="other-example@email.com">E. Idle</a>
</body>
</html>
""")
print(html.xpath('//@data-email'))
打印:
['example@email.com', 'other-example@email.com']
答案 1 :(得分:0)
如果我的问题正确无误,那么您可能需要提取电子邮件地址:
>>> import re
>>> print(re.findall(r'(?<=data-email=")[^"]*(?=")', '<b><a href="/abcd.html" data-email="example@email.com">abcd</a></b>'))
['example@email.com']
答案 2 :(得分:0)
您可以使用以下内容获取电子邮件地址。 如果你能发布一些例子,我不确定你究竟在处理它会是多么好。但是你可以尝试这个,它可能对你有帮助。
re.compile("([\w\-\.]+@(\w[\w\-]+\.)+[\w\-]+)")
这有助于您获得"example@email.com"
答案 3 :(得分:0)
BeautifulSoup是你的朋友:
from bs4 import BeautifulSoup as BS
emails = []
soup = BS(html_string, 'html5lib')
for a in soup.findAll('a'):
try:
emails.append(a['data-email'])
except KeyError:
continue