Класс BeautifulSoup находит возвращение Нет - PullRequest
0 голосов
/ 22 апреля 2019

Я пишу программу на Python, использующую BeautifulSoup, которая будет получать ссылку для загрузки на веб-сайте.Я использую метод find для извлечения html-класса, в котором находится ссылка, но он возвращает None.

Я пытался использовать доступ к этому классу с использованием родительских классов, но безуспешно.

Вот мой код

link = 'https://data.worldbank.org/topic/agriculture-and-rural-development?view=chart'

for link in indicator_links:
    indicator_page = requests.get(link)
    indicator_soup = BeautifulSoup(page.text, 'html.parser')
    download = indicator_soup.find(class_="btn-item download")

Опять же, я хочу, чтобы ссылка для загрузки находилась внутри btn-item download html класса.

Ответы [ 3 ]

0 голосов
/ 22 апреля 2019

Вы имеете в виду все ссылки внутри класса btn-item download html?

Измените свой код с помощью этого:

link = 'https://data.worldbank.org/topic/agriculture-and-rural-development?view=chart'

page = requests.get(link)
indicator_soup = BeautifulSoup(page.text, 'html.parser')
download = indicator_soup.find(class_="btn-item download")
for lnk in download.find_all('a', href=True):
    print(lnk['href'])
0 голосов
/ 22 апреля 2019

Проблема заключалась в том, что я создавал объект BeautifulSoup с неверным html-аргументом. Это должно было быть:

indicator_soup = BeautifulSoup(indicator_page.text, 'html.parser')

вместо

indicator_soup = BeautifulSoup(page.text, 'html.parser')
0 голосов
/ 22 апреля 2019

Если вы хотите ссылку, она будет на 100% в теге .Это лучшее, что я могу сделать, чтобы протянуть руку помощи:

from bs4 import BeautifulSoup
import urllib.request

page_url = "https://data.worldbank.org/topic/agriculture-and-rural-development?view=chart"
soup = BeautifulSoup(urllib.request.urlopen(page_url), 'lxml')

what_you_want = soup.find('a', clas_="btn-item download")

Это должно дать вам нужную ссылку.

Не уверен, что вы пытаетесь сделать в своем коде, так как яне могу сказать, что такое индикатор_линки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...