Python BS4 не может правильно извлекать данные - PullRequest
0 голосов
/ 27 мая 2020

Итак, у меня есть исходный код

<div class="field-fluid col-xs-12 col-sm-12 col-md-12 col-lg-6">
    <div class="label-fluid">Email Address</div>
    <div class="data-fluid rev-field" aria-data="rei-0">maldapalmer<span class="hd-form-field">ajk89;fjioasjdfwjepu90f30 v09u30r nv8704rhnv987rjl3409u0asu[amav084-8235 087307304u0[9fd0]] asf74 john 9@#83r8cva sarah sj4t8g@!$%#7h v7hgv 398#$&amp;&amp;^@7y9</span>@gmail<span class="hd-form-field">ajk89;fjioasjdfwjepu90f30 v09u30r nv8704rhnv987rjl3409u0asu[amav084-8235 087307304u0[9fd0]] asf74 john 9@#83r8cva sarah sj4t8g@!$%#7h v7hgv 398#$&amp;&amp;^@7y9</span>.com</div>
</div>

Кажется, я все делаю правильно, однако я просто не могу извлечь адрес электронной почты, расположенный во втором div в основном элементе div. Это мой код:

fields = []
for row in rows:
    fields.append(row.find_all('div', recursive = False))
email = fields[0][0].find(class_ = "data-fluid rev-field").text

Строка - это элемент в главном div. Любые предложения приветствуются, также я надеюсь, что я достаточно хорошо объяснил проблему.

Проблема, которую я получаю, заключается в том, что строка отображается пустой ''. Спасибо!

1 Ответ

3 голосов

Вы можете извлечь электронную почту, используя следующий код:

from bs4 import *
from requests import get
response = get('http://127.0.0.1/bs.html') # Replce 'http://127.0.0.1/bs.html' with your URL
sp = BeautifulSoup(response.text, 'html.parser')
email = sp.find('div', class_= "data-fluid rev-field").text
spn = sp.find('span', class_= "hd-form-field").text
email = email.replace(spn,"")
print(email)

Вывод:

maldapalmer@gmail.com
...