我试图使用BeautifulSoup库从webpage中挖掘出四个字段。很难单独识别字段,这就是我寻求帮助的原因
有时两封电子邮件都存在,但情况并非总是如此。在本例中,我使用索引来捕获电子邮件,但这肯定是最糟糕的想法。此外,通过以下尝试,我只能解析电子邮件的标题,而不能解析电子邮件地址
我尝试过(最低工作示例):
from bs4 import BeautifulSoup
html = """
<p>
<strong>
Robert Romanoff
</strong>
<br/>
146 West 29th Street, Suite 11W
<br/>
New York, New York 10001
<br/>
Telephone: (718) 527-1577
<br/>
Fax: (718) 276-8501
<br/>
Email:
<a href="mailto:robert@absol.com">
robert@absol.com
</a>
<br/>
Additional Contact: William Locantro
<br/>
Email:
<a href="mailto:bill@absol.com">
bill@absol.com
</a>
</p>
"""
soup = BeautifulSoup(html,"lxml")
container = soup.select_one("p")
contact_name = container.strong.text.strip()
contact_email = [i for i in container.strings if "Email" in i][0].strip()
additional_contact = [i.strip() for i in container.strings if "Additional Contact" in i.strip()][0].strip('Additional Contact:')
additional_email = [i for i in container.strings if "Email" in i][1].strip()
print(contact_name,contact_email,additional_contact,additional_email)
电流输出:
Robert Romanoff Email: William Locantro Email:
预期产出:
Robert Romanoff robert@absol.com William Locantro bill@absol.com
这里有一个解决方案,你可以试一试
对于更复杂的html/xml解析,您应该看看
xpath
,它允许非常强大的选择器规则在python中,它在
parsel
包中提供你可以这样做
<div>
李><div>
中存在的数据列表代码如下:
提供承包商详细信息和其他详细信息(如有)的列表
相关问题 更多 >
编程相关推荐