【发布时间】:2016-09-14 11:22:10
【问题描述】:
我正在尝试抓取此网页的航班数量https://www.flightradar24.com/56.16,-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:
[<span class="choiceValue" id="menuPlanesValue">0</span>]
查看源代码也显示0,所以我明白BeautifulSoup为什么也返回0了。
有谁知道获取当前值的其他方法吗?
【问题讨论】:
-
我认为这些值是通过javascript更新的,并且在页面加载后,初始值为0。所以你需要在抓取内容之前以某种方式执行js。否则,你将永远得到零。
-
@linusg 有关如何做到这一点的任何线索?
-
我是对的,看看@Andre 的回答!
-
如果您有兴趣,我可以编写一些基本代码来检索 json 并对其进行处理...可能需要几分钟,但如果对您有帮助... :)
-
@linusg 谢谢。我正在尝试
c=r.json()["list"],但得到了json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
标签: python web-scraping beautifulsoup