Я кодирую API, который останавливает следующие автобусы моей городской автобусной компании.
Вот пример таблицы, которую я выхватил из них: https://abernecio.github.io/example_table.html
Обычно всякий раз, когда кто-то вызывает getBuses (stop_code), я хочу, чтобы API печатал:
машин: [весь первый столбец, без заголовка]
время: [весь второй столбец, без заголовка]
ETA: [весь третий столбец, минус заголовок]
Вот что у меня есть:
import urllib
from urllib.request import urlopen
import urllib.error
from bs4 import BeautifulSoup
def getbuses(code):
try:
html = urlopen("https://abernecio.github.io/example_table.html") # Acede ao website
soup = BeautifulSoup(html, 'html.parser')
table = soup.find(id='smsBusResults') # Vai buscar a tabela com id #smsBusResults
rows = table.find_all('tr') # Vai buscar as rows -tr- a tabela
col = table.find_all("td")
# for row in rows:
# tds = row.find_all('td')
# cols = [ele.text.strip() for ele in cols] # Remove a formatacao HTML
# cols = [ele.replace('\n', '') for ele in cols] # Remove os paragrafos
# cols = [ele.replace('\t', '') for ele in cols] # Remove uns espaços a mais, na fila dos autocarros
cars = (col[0].text)
time = (col[1].text)
awaittime = (col[2].text)
print("carros:")
print(cars)
print("\nhora:")
print(time)
print("\ntempo de espera:")
print(awaittime)