实时抓取网页数据(Chrome开发者控制台中的网络选项卡(例如)(图))

优采云 发布时间: 2022-01-15 17:18

  实时抓取网页数据(Chrome开发者控制台中的网络选项卡(例如)(图))

  问题描述

  我尝试抓取此页面的航班数,-49.51

  这些数字在下图中突出显示:

  

  数字每 8 秒更新一次。

  这是我用 BeautifulSoup 尝试的:

  import requests

from bs4 import BeautifulSoup

import time

r=requests.get("https://www.flightradar24.com/56.16,-49.51")

c=r.content

soup=BeautifulSoup(c,"html.parser")

value=soup.find_all("span",{"class":"choiceValue"})

print(value)

  但这总是返回 0:

  [0]

  看源码也显示为0,明白BeautifulSoup为什么也返回0了。

  有谁知道获得当前值的任何其他方法?

  推荐答案

  您的方法的问题是页面首先加载视图,然后执行定期请求以刷新页面。如果您查看 Chrome 开发者控制台中的网络选项卡(例如),您会看到右边的 ,52.64,- 58.77,-47.71&faa= 1&mlat=1&flarm=1&adsb=1&gnd=1&air=1&vehicles=1&estimated=1&maxage=7200&gliders=1&stats=1

  响应是纯 json:

  {

"full_count": 11879,

"version": 4,

"afefdca": [

"A86AB5",

56.4288,

-56.0721,

233,

38000,

420,

"0000",

"T-F5M",

"B763",

"N641UA",

1473852497,

"LHR",

"ORD",

"UA929",

0,

0,

"UAL929",

],

...

"aff19d9": [

"A12F78",

56.3235,

-49.3597,

251,

36000,

436,

"0000",

"F-EST",

"B752",

"N176AA",

1473852497,

"DUB",

"JFK",

"AA291",

0,

0,

"AAL291",

],

"stats": {

"total": {

"ads-b": 8521,

"mlat": 2045,

"faa": 598,

"flarm": 152,

"estimated": 464

},

"visible": {

"ads-b": 0,

"mlat": 0,

"faa": 6,

"flarm": 0,

"estimated": 3

}

}

}

  我不确定这个 API 是否受到任何保护,但我似乎可以使用 curl 访问它而没有任何问题。

  更多信息:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线