📜  使用Python获取印度火车站代码(1)

📅  最后修改于: 2023-12-03 14:49:50.945000             🧑  作者: Mango

使用Python获取印度火车站代码

印度有15000多个火车站,如果您需要获取印度火车站代码,您可以编写一个Python脚本来工作。这个脚本可以从一个网站获取数据,解析它并将它转换为CSV文件。

脚本概述

这个Python脚本使用Web Scraping技术,它可以从http://indiarailinfo.com这个网站获取火车站的代码。然后,它从HTML数据中提取信息,并将其转换为csv文件。

代码实现

以下是Python脚本的完整代码:

import requests
from bs4 import BeautifulSoup
import csv

base_url = 'http://indiarailinfo.com/station/timetable/all-trains/'

def get_stations():
    stations_list = []
    for i in range(1, 27):
        url = base_url + str(i)
        resp = requests.get(url)
        soup = BeautifulSoup(resp.text, "html.parser")
        stations = soup.find_all('tr')[1:]
        for station in stations:
            station_info = station.find_all('td')
            station_code = station_info[0].text.strip()
            station_name = station_info[1].text.strip()
            station_tuple = (station_code, station_name)
            stations_list.append(station_tuple)
    return stations_list

def write_csv(stations_list):
    with open('indian_railway_stations.csv', mode='w') as csv_file:
        fieldnames = ['Station Code', 'Station Name']
        writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
        writer.writeheader()
        for station in stations_list:
            writer.writerow({'Station Code': station[0], 'Station Name': station[1]})

def main():
    stations_list = get_stations()
    write_csv(stations_list)

if __name__ == "__main__":
    main()

此脚本定义了三个函数:get_stations, write_csvmain。get_stations函数负责从网站中读取页面内容,然后解析HTML,并返回一个元组列表,该列表包含火车站的代码和名称。write_csv函数负责将获得的元组列表写入CSV文件。最后,我们使用main函数来调用这两个函数。

使用

要使用此脚本,请执行以下步骤:

  1. 安装必需的Python包:requests, bs4, csv
pip install requests
pip install bs4
pip install csv
  1. 复制上述代码并将其保存到一个文件中(例如:indian_railway_stations.py

  2. 执行脚本:

python indian_railway_stations.py
  1. 在脚本执行完毕后,查看当前目录下的indian_railway_stations.csv文件以获取印度火车站代码。
总结

使用Python编写脚本是一种很好的自动化任务的方法。这个Python脚本不仅仅可以用来收集火车站代码,还可以用于其他类似的Web Scraping任务。此外,您还可以将此脚本修改以适应其他类似网站的数据下载。