Я собираю данные с espn.com для предстоящего расписания НФЛ.Тем не менее, я могу получить только первую строку таблицы, а не остальные таблицы.Я полагаю, что это из-за структуры HTML, и каждая дата имеет разные «тд».Я могу получить данные игры в четверг, но не остальные
**** Четверг, 5 сентября **** ВРЕМЯ МАТЧЕПОВ (ET) РАСПОЛОЖЕНИЕ БИЛЕТОВ НА ТЕЛЕВИЗОР Грин Бэй
Чикаго 20:20 Билеты на NBCвсего $ 290 Солдат Филд, Чикаго
Воскресенье, 8 сентября ВРЕМЯ МАТЧЕПА (ET) РАСПОЛОЖЕНИЕ БИЛЕТОВ НА ТЕЛЕВИЗОР Теннесси
Кливленд 13:00 CBS Билеты всего за 121 $ Стадион FirstEnergy, Кливленд
Цинциннати
Сиэтл 16:05 CBS Билеты всего за 147 долларов США CenturyLink Field, Сиэтл
Нью-Йорк
Даллас 16:25 FOX Билеты всего за 50 долларов на стадионе AT & T, Арлингтон Фоксборо Понедельник, 9 сентября ВРЕМЯ МАТЧЕПА (ET) РАСПОЛОЖЕНИЕ БИЛЕТОВ НА ТЕЛЕВИЗОР NAT Хьюстон, Новый Орлеан, 19:10 ESPN Билеты всего за 112 долларов Mercedes-Benz Superdome, Новый Орлеан
Денвер
Окленд 22:20 ESPNБилеты всего за 72 доллара. Оклендский Колизей, Окленд.
Я пользовался Beautifulsoup и собирался получить данные, но анализ данных был затруднен.
Я пытался просто продолжитьиспользуя цикл for, но я могу отслеживать обратный ход остановки.Прочитав предыдущую статью об отслеживании, я понимаю, что мне нужно попробовать другое решение проблемы.
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse
import pandas as pd
main_url = ['http://www.espn.com/nfl/schedule'][1]
response = requests.get(main_url)
soup = BeautifulSoup(response.text, 'lxml')
table = soup.find('table')
rows = table.find_all('tr')
rows = iter(rows)
df = [td.text for td in next(rows).find_all('td') if td.text]
df2 = [td.text for td in next(rows).find_all('td') if td.text]
[1]: https://www.espn.com/nfl/schedule