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

📅  最后修改于: 2022-05-13 01:54:42.462000             🧑  作者: Mango

使用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