Учитывая источник HTML-страницы, такой как:
<html>
<head></head>
<body>
<p><nobr><a href="...">Some link text</a></nobr><p>
</body>
</html>
И без явного знания, какие теги обертывают элемент <a>
(это может быть что угодно, не только nobr).Как создать цикл, который будет разворачивать родительский элемент данного тега <a>
, пока его родительский элемент не станет абзацем?
Что-то вроде:
import urllib3
from bs4 import BeautifulSoup as bs
http = urllib3.PoolManager()
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
page = "https://www.snopes.com/fact-check/rebuilding-iraq/"
link="http://www.elca.org/ScriptLib/OS/Congregations/cdsDetail.asp?congrno=12962"
r = http.request('get', page)
body = r.data
soup = bs(body, 'lxml')
a = soup.find('a', href=link)
while True:
if a.parent.name == "p":
break
else:
a.parent.name.unwrap() #doesnt work as name is string
print(soup)