CoderCastrov logo
CoderCastrov
Парсер

Как парсить выпадающий список с помощью BeautifulSoup

Как парсить выпадающий список с помощью BeautifulSoup
просмотров
1 мин чтение
#Парсер
Table Of Content
scrape a drop down list in BeautifulSoup

В этой статье я покажу вам, как парсить выпадающий список с помощью 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.