Как получить только первые данные из веб-списка соскобов в BeautifulSoup - PullRequest
0 голосов
/ 29 марта 2020

Так что я новичок в BeautifulSoup в python, и я пытаюсь получить (очистить) последнюю версию python со своего веб-сайта (в частности, их страницу загрузки) с помощью BeautifulSoup, как только я это сделаю, я получить список всех доступных python версий в текстовом формате. Но я пытаюсь получить только первый элемент (это Python 3.7.7), но я понятия не имею, как это сделать, какие-либо предложения?

page = requests.get("https://www.python.org/downloads/")
soup = BeautifulSoup(page.content, 'html.parser')
div_python_versions= soup.find('div', {"class": "row download-list-widget"})
python = div_python_versions.find_all('span', {"class": "release-number"})

for n in python:
    print(n.get_text())

В качестве вывода я получаю это на терминале

Release version
Python 3.7.7
Python 3.8.2
Python 3.8.1
Python 3.7.6
Python 3.6.10
Python 3.5.9
Python 3.5.8
Python 2.7.17

Все, что я хочу, - это получить доступ к первому элементу (Python 3.7.7) и сохранить его в переменной. Было бы полезно, если кто-нибудь знает, как помочь в любом случае.

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

Доступ ко второму элементу в списке (первый - «Версия выпуска»)

python = div_python_versions.find_all('span', {"class": "release-number"})
First_element = python[1]
print(First_element.get_text())

Вывод:

Python 3.7.7
0 голосов
/ 29 марта 2020

Я не знаю, является ли это лучшим способом, но этот способ покажет, есть ли подстрока Python в одном элементе, если он не повторяется до следующего, если он существует, вернем:

page = requests.get("https://www.python.org/downloads/")
soup = BeautifulSoup(page.content, 'html.parser')
div_python_versions= soup.find('div', {"class": "row download-list-widget"})
python = div_python_versions.find_all('span', {"class": "release-number"})

var = ""
for n in python:
    if "Python" in n.get_text():
        var = n.get_text()
        break
print(var)

Или сделайте это более чистым способом, выбрав только элементы номера выпуска диапазона в теге ol и выберите первый элемент:

page = requests.get("https://www.python.org/downloads/")
soup = BeautifulSoup(page.content, 'html.parser')
ol_python_versions= soup.find('ol', {"class": "list-row-container menu"})
python = ol_python_versions.find_all('span', {"class": "release-number"})

var = python[0].get_text()
print(var)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...