Как парсить выпадающий список с помощью BeautifulSoup
Table Of Content
В этой статье я покажу вам, как парсить выпадающий список с помощью BeautifulSoup и Python.
Шаги
В этой статье мы будем парсить веб-сайт "Jadwal Imsakiyah By Kompas". Этот сайт отображает расписание молитв и имсакия для всех регионов Индонезии. Ссылка здесь.
Затем вы попробуйте открыть "Инспектор элементов" (щелкните правой кнопкой мыши) и увидите, что список названий районов находится внутри тега select
. Каждое значение хранится в теге option
.
Примерно так должно выглядеть:
<select class="js-imsak" name="state" onchange="load_jadwal_widget(this)" style="width: 100%"><option value="kab-aceh-barat">KAB. ACEH BARAT</option>...
...
Давайте попробуем —
Импортируйте get
, BeautifulSoup
и получите все элементы на странице.
from bs4 import BeautifulSoup
from requests import get
page = get("https://www.kompas.com/ramadhan/jadwal-imsakiyah/kota-pangkal-pinang")
soup = BeautifulSoup(page.text, "lxml")
Как уже объяснялось ранее, каждое значение в выпадающем списке хранится в теге option
, однако...
Способ получить значение в выпадающем списке с помощью BeautifulSoup - это использовать тег
select
. В этом случае я используюname
, вы можете попробовать что-то другое, если хотите.
Примерно так:
options = soup.find("select", {"name": "state"}).findAll("option")
Затем мы попробуем сохранить результат в список:
daerah = []
for i in options:
name = i.text
link = i["value"]
daerah.append({
"province": name,
"link": link
})
Удачи!
Надеюсь, вам понравилась статья. Я настоятельно рекомендую зарегистрироваться в Medium Membership.
Ваша плата за членство напрямую поддерживает меня и других писателей, которых вы читаете. Вы также получите полный доступ ко всем статьям на Medium.