使用Python获取印度火车站代码
网页抓取是一种从网站获取数据的技术。在网上冲浪时,许多网站不允许用户保存数据供个人使用。一种方法是手动复制粘贴数据,这既乏味又耗时。 Web Scraping 是从网站中自动提取数据的过程。此事件是在称为网络抓取工具的网络抓取软件的帮助下完成的。
在本文中,我们将编写Python脚本以使用城市名称抓取火车站代码。
例子:
Input: new-delhi
Output: NDLS
Input: Patna
Output: PNBE
需要的模块
- bs4: Beautiful Soup(bs4) 是一个Python库,用于从 HTML 和 XML 文件中提取数据。这个模块没有内置于Python中。要安装此类型,请在终端中输入以下命令。
pip install bs4
- requests : Request 允许您非常轻松地发送 HTTP/1.1 请求。这个模块也没有内置于Python中。要安装此类型,请在终端中输入以下命令。
pip install requests
让我们看看脚本的逐步执行。
第一步:导入所有依赖
Python3
# import module
import requests
from bs4 import BeautifulSoup
Python3
# user define function
# Scrape the data
def getdata(url):
r = requests.get(url)
return r.text
Python3
# input by geek
station = "new-delhi"
# url
url = "https://www.mapsofindia.com/railways/station-code/"+station+".html"
# pass the url
# into getdata function
htmldata=getdata(url)
soup = BeautifulSoup(htmldata, 'html.parser')
# display html code
print(soup)
Python3
# traverse the station code
data = []
for item in soup.find("table", class_="extrtable").find_all('b'):
data.append(item.get_text())
print(data[-1])
第 2 步:创建 URL 获取函数
蟒蛇3
# user define function
# Scrape the data
def getdata(url):
r = requests.get(url)
return r.text
第 3 步:现在将城市名称合并到 URL 并将 URL 传递到 getdata()函数并将该数据转换为 HTML 代码。
蟒蛇3
# input by geek
station = "new-delhi"
# url
url = "https://www.mapsofindia.com/railways/station-code/"+station+".html"
# pass the url
# into getdata function
htmldata=getdata(url)
soup = BeautifulSoup(htmldata, 'html.parser')
# display html code
print(soup)
输出:
第 4 步:从 HTML 文档中遍历 Station 代码。
蟒蛇3
# traverse the station code
data = []
for item in soup.find("table", class_="extrtable").find_all('b'):
data.append(item.get_text())
print(data[-1])
输出:
NDLS