我试图仅从data-ldpemail标记中删除信息,而不是整个标记。
关于如何使用python和漂亮的汤来做到这一点的任何想法。我一直在获取整个标签,而不仅仅是“ data-ldpemail”。以下是示例标签:
<a class="lf_font-weight--light agent-email mailto" data-ldpphone="111-111-111" data-ldpemail="[email protected]" data-personid="10480733">Me</a>
import requests
from bs4 import BeautifulSoup
soup = BeautifulSoup(open('test.html'), 'html.parser')
people = soup.find('div', id='search-results')
items = people.find_all('figure')
#print(items)
print(items[0].find('h1').get_text())
print(items[0].find('h3').get_text())
email = soup.find('a', attrs={"data-ldpemail" : "x"})
email = email.attrs['data-ldpemail']
print(email)
由于您尚未提供任何代码来演示如何到达自己所在的位置,因此我假设您知道如何隔离所需的“ a”标签。
重要的是要注意,在示例中,“ data-ldpemail”不是标签,而是“ a”(锚)标签的标签属性。假设您有一个隔离的标签,该标签具有该属性,然后提取该属性的值:
a_tag.attrs['data-ldpemail']
bs4.element.Tag.attrs
将返回一个包含标签的所有属性作为键的字典,每个标签的值作为字典值。然后,我们只需访问属性字典的键即可。
一行可以从汤中获取全部:
email_list = [tag.attrs.get('data-ldpemail') for tag in soup.find_all('a') if tag.attrs.get('data-ldpemail') is not None]
上面的一个衬纸所做的是找到整个汤对象中的所有锚标签,遍历该对象集,email_list
如果该锚标签具有“ data-ldpemail”属性,则将“ data-ldpemail”标签属性的值添加。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句