У вас нет лога соскоба c внутри for-l oop, поэтому вы будете получать информацию только из последнего значения x
(вашего Line Id
).
Этот скрипт будет получать информацию со страниц 1 до 2:
import requests
from bs4 import BeautifulSoup
url = 'https://tfl.gov.uk/bus/route/{}'
data = {}
for line_no in range(1, 3):
soup = BeautifulSoup(requests.get(url.format(line_no)).content, 'html.parser')
for val in soup.select('input[name="stop-naptan-id"][value]'):
data.setdefault(line_no, []).append((val.find_next('a').contents[0].strip(), val['value']))
from pprint import pprint
pprint(data)
Отпечатки:
{1: [('New Oxford Street', '490000235Z'),
('Museum Street', '490010131WB'),
('Kingsway / Holborn Station', '490000112M'),
('Aldwych / The Royal Courts Of Justice', '490019704K'),
('Aldwych / Somerset House', '490003193S'),
('Waterloo Bridge / South Bank', '490014271N'),
('Waterloo Station / Waterloo Road', '490000254E'),
('The Old Vic', '490013485S1'),
("St George's Circus", '490012693S2'),
... and so on.