📅  最后修改于: 2023-12-03 14:49:50.945000             🧑  作者: Mango
印度有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_csv
和main
。get_stations函数负责从网站中读取页面内容,然后解析HTML,并返回一个元组列表,该列表包含火车站的代码和名称。write_csv函数负责将获得的元组列表写入CSV文件。最后,我们使用main函数来调用这两个函数。
要使用此脚本,请执行以下步骤:
pip install requests
pip install bs4
pip install csv
复制上述代码并将其保存到一个文件中(例如:indian_railway_stations.py
)
执行脚本:
python indian_railway_stations.py
使用Python编写脚本是一种很好的自动化任务的方法。这个Python脚本不仅仅可以用来收集火车站代码,还可以用于其他类似的Web Scraping任务。此外,您还可以将此脚本修改以适应其他类似网站的数据下载。