【问题标题】:failure in scraping the flight data table from airport website从机场网站抓取航班数据表失败
【发布时间】:2018-12-13 05:11:26
【问题描述】:

我一直在尝试从新德里国际机场的网站上抓取国内航班的到达和离开数据。 我几乎尝试了所有方法,但无法提取数据。 当我运行代码时,它什么也没有返回。我在另一个机场网站上尝试了类似的代码,但它有效。 这是我写的代码。

res = requests.get("https://m.newdelhiairport.in/live-flight- information-all.aspx?FLMode=A&FLType=D")
soup = BeautifulSoup(res.content,'html5lib')
table = soup.find_all('tbody',{'class':'arr_dep_table_body'})
print(table)

这是网站的链接:-“https://m.newdelhiairport.in/live-flight-information-all.aspx?FLMode=A&FLType=D

A screenshot of the website

【问题讨论】:

  • 该页面没有任何航班相关信息。 JavaScript 对存储实际信息的m.newdelhiairport.in/… 进行 ajax 调用。
  • 您导出的链接。你能告诉我如何为其他网站或其他网页做到这一点吗?
  • 只需打开浏览器的检查器并查看“网络”选项卡。
  • 我试过但做不到。你能帮我解决一下链接“csia.in/flightinformation/passenger-flight.aspx”吗?我需要查找国际航班的数据。

标签: python web-scraping beautifulsoup


【解决方案1】:

如前所述,您可以使用作为数据来源的备用 URL。您将需要添加一个标题。

import requests
import pandas as pd

url = 'https://m.newdelhiairport.in/get-all-Fids-FlightInfo.aspx?FltType=D&FltWay=A&FltNum=&FltFrom=&rn=0.992638793938065'
re = requests.get(url, headers =  {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'})
df = pd.read_html(re.text)
print(df)

我从网络标签中提取了 URL。我打开了网络选项卡并重新加载了页面,然后检查了 XHR 网络流量:

【讨论】:

  • 你能解释一下标题部分吗?我的笔记本电脑中的参数会有所不同吗?
  • 我试过了,它奏效了,但是表格变得混乱了。我该怎么办?
  • 对不起。我的意思是列被混淆了。例如,状态和 ETA 出现在一列中,而 ETA 的位置是 NONE。
  • 当然,只要你有空。问题是 VIA 有一个空列。并且其他列的值正在填充。
  • 你能告诉我你是怎么得到这个链接的吗?
猜你喜欢
  • 2021-10-06
  • 2013-05-21
  • 2014-07-06
  • 2018-10-13
  • 1970-01-01
  • 2016-02-03
  • 1970-01-01
相关资源
最近更新 更多