Извлечение значений списка во время чистки - PullRequest
0 голосов
/ 11 марта 2020

Я просматриваю https://www.nps.gov/index.htm и пытаюсь создать словарь, в котором названия состояний из выпадающего меню являются ключами, а значения - это ссылки на соответствующую страницу, содержащую информацию этого состояния. .

Однако, с моим текущим кодом, я получаю что-то вроде этого:

<li><a href="/state/wy/index.htm">Wyoming</a></li>

С моим текущим уровнем квалификации я не знаю, как извлечь название состояния, потому что оно не У вас нет идентификатора, класса или чего-то в этом роде?

Так как же мне go добиться этого? Вот мой текущий код:

state_dict = {}

url = 'https://www.nps.gov/index.htm'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
drop_down_search = soup.find('ul', class_="dropdown-menu SearchBar-keywordSearch")
state_search = drop_down_search.find_all('li', recursive=True)

for state in state_search:
    print(state)

Ответы [ 2 ]

4 голосов
/ 11 марта 2020

Вы можете использовать свойство .text, вот так:

import requests
from bs4 import BeautifulSoup

state_dict = {}

url = 'https://www.nps.gov/index.htm'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
drop_down_search = soup.find('ul', class_="dropdown-menu SearchBar-keywordSearch")
state_search = drop_down_search.find_all('li', recursive=True)

for state in state_search:
    print(state.text)

будет печатать только текст:

Alabama
Alaska
American Samoa
Arizona
Arkansas
...
0 голосов
/ 11 марта 2020
...

for state in state_search:
    for link in state.find_all('a'):
        print("%30s ===> %s" % (link.text, link.get('href')))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...