Как мне проанализировать все <tr>с определенным идентификатором в BeautifulSoup 4? - PullRequest
0 голосов
/ 18 октября 2018

В основном я делаю скрипт на Python, который возвращает список времени отправления всех поездов с сегодняшнего дня, с определенной остановки (как вы можете видеть на параметрах POST), но он просто возвращает последний поезд, дляпо какой-то причине.

Текущий код:

import requests
from bs4 import BeautifulSoup
import datetime
import calendar


def get_todays_trains():
    now = datetime.datetime.now()

    url = 'https://www.cp.pt/sites/passageiros/en/train-times/Train-time-results'

    r = requests.post(url, allow_redirects=False, data={
        'arrival': 'Porto - Campanha',
        'depart': 'Aguas Santas - Palmilheira',
        'departDate': str(now.year) + '-' + str(now.month) + '-' + str(now.day),
        'Date': str(now.day) + ' ' + calendar.month_name[now.month] + ', ' + str(now.year)
    })

    html = r.text
    soup = BeautifulSoup(html, 'html.parser')

    for row in soup.findAll('tbody')[1].tbody.findAll('tr'):
        depart = row.findAll('td')[2]

    print(depart)
    print('departDate: ' + str(now.year) + '-' + str(now.month) + '-' + str(now.day))
    print('Date: ' + str(now.day) + ' ' + calendar.month_name[now.month] + ', ' + str(now.year))

    return depart


get_todays_trains()

Если вы не хотите переходить на страницу, вот урезанная версия HTML со страницы:

https://pastebin.com/bfkAr6sH

1 Ответ

0 голосов
/ 18 октября 2018

Как говорит Робин, вы должны поместить временные значения в список и вернуть их.Мое предложение будет иметь словарь, который содержит все значения, такие как дата отъезда задницы и другие данные, которые вам нужныНапример,

train_data = dict()
train_data['departing_date'] = str(now.year) + '-' + str(now.month) + '-' + str(now.day)
train_data['other_data'] = 'something you need'
train_data['departing_trains'] = []
for row in soup.findAll('tbody')[1].tbody.findAll('tr'):
    depart = row.findAll('td')[2]
    train_data['departing_trains'].append(depart)
return train_data

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

Надеюсь, это поможет!Ура!

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