43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
|
from bs4 import BeautifulSoup
|
||
|
import requests, json
|
||
|
from pprint import pprint
|
||
|
|
||
|
|
||
|
class Scraper():
|
||
|
url = 'http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/partenze/S01480/Tue%20Oct%2011%202017%2008:30:00%20GMT+0200%20(CEST)'
|
||
|
|
||
|
def __init__(self):
|
||
|
pass
|
||
|
|
||
|
def get_stations(self, filename):
|
||
|
_ret = []
|
||
|
with open(filename) as file:
|
||
|
return self.parse_stations(file.read())
|
||
|
return _ret
|
||
|
|
||
|
def parse_stations(self, stations):
|
||
|
_ret = []
|
||
|
for station in stations.split('\n'):
|
||
|
if len(station) > 0:
|
||
|
_ret.append(self.parse_station(station))
|
||
|
return _ret
|
||
|
|
||
|
def parse_station(self, station):
|
||
|
stat = station.split('|')
|
||
|
return {
|
||
|
'name': stat[0].strip(),
|
||
|
'code': stat[1].strip()
|
||
|
}
|
||
|
def find_stations(self, station_name, stations):
|
||
|
_ret = []
|
||
|
for station in stations:
|
||
|
if station_name.lower() in station['name'].lower():
|
||
|
_ret.append(station)
|
||
|
return _ret
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
scraper = Scraper()
|
||
|
|
||
|
stations = scraper.get_stations('elenco_stazioni.txt')
|
||
|
pprint(stations)
|