Красивый суп Получить номер тд класса - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь получить номер класса td с именем таблицы-участника из упомянутой сети без успеха, так как я получаю 0. Любая помощь?

Спасибо


from requests import get
url = 'https://www.oddsportal.com/soccer/spain/laliga/'
response = get(url)

from bs4 import BeautifulSoup
html_soup = BeautifulSoup(response.text, 'html.parser')
type(html_soup)

movie_containers = html_soup.find_all('td', class_ = 'name table-participant')
print(type(movie_containers))
print(len(movie_containers))

1 Ответ

0 голосов
/ 15 мая 2019

На самом деле с вашим кодом все в порядке, но вы не проверяли код состояния из запроса GET. Происходит то, что сервер отвечает с хорошим 404 и страницей, которая не содержит то, что вы ищете. Причина? Я не знаю.

Поскольку указанный URL-адрес работает в браузере, я просто добавил заголовки User-Agent к вызову, и ваш код начал работать. Чтобы добавить User-Agent, вы должны сделать что-то вроде:

from requests import get
from bs4 import BeautifulSoup

headers = {'User-Agent': 'Mozilla/5.0'}
url = 'https://www.oddsportal.com/soccer/spain/laliga/'
response = get(url, headers=headers)

if response.status_code == 200:
    html_soup = BeautifulSoup(response.text, 'html.parser')
    movie_containers = html_soup.find_all('td', class_ = 'name table-participant')
    print(type(movie_containers))
    print(len(movie_containers))
else:
    print("Server returned status code %s" % response.status_code)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...