#python #html #beautifulsoup
#python #HTML #прекрасный суп
Вопрос:
Я создал список, и мне нужно найти идентификаторы списка. Список выглядит следующим образом:
x = [<h3><span class="mw-headline" id="19th_century">19th century</span></h3>,
<h3><span class="mw-headline" id="20th_century">20th century</span></h3>,
<h3><span class="mw-headline" id="21st_century">21st century</span></h3>,
<h3><span class="mw-headline" id="Boundaries">Boundaries</span></h3>,
<h3><span class="mw-headline" id="Topography">Topography</span></h3>]
Я попробовал что-то вроде
x[0].contents
«find.all» и так далее, но на самом деле я не знаю, как получить идентификатор.
import urllib
import requests
from bs4 import BeautifulSoup
url = r"https://en.wikipedia.org/wiki/Illinois"
mybytes = urllib.request.urlopen(url)
mybytes = mybytes.read().decode("utf8")
type(mybytes)
parsed_html = BeautifulSoup(mybytes, features = 'lxml')
type(parsed_html)
x = parsed_html.body.find_all("h3")
#x[0].contents('table', attrs={'id':'data_table'})
x[0:3]
Комментарии:
1. Это недопустимый python. Опубликуйте что-нибудь, что мы можем использовать, тогда, возможно, мы сможем помочь.
Ответ №1:
Предполагая, что вы анализируете html с помощью BeautifulSoup, вы можете использовать find_all
для получения всех нужных элементов, а затем получить идентификаторы:
x = """<h3><span class="mw-headline" id="19th_century">19th century</span></h3>,
<h3><span class="mw-headline" id="20th_century">20th century</span></h3>,
<h3><span class="mw-headline" id="21st_century">21st century</span></h3>,
<h3><span class="mw-headline" id="Boundaries">Boundaries</span></h3>,
<h3><span class="mw-headline" id="Topography">Topography</span></h3>"""
soup = BeautifulSoup(x, "lxml")
for tag in soup.find_all("span") :
print(tag.get('id'))
Вывод:
19th_century
20th_century
21st_century
Boundaries
Topography
Комментарии:
1. Большое спасибо, что мне помогло