我使用 Beautiful Soup 4 库编写了一个 python 网络爬虫,并在树莓派 0 上运行它。我正在从中获取数据mlb.com/<insert a team name>/scores
,例如,mlb.com/padres/scores
或mlb.com/cubs/scores
. 当游戏被安排、正在进行或已经结束时,这些网站看起来略有不同。我的程序适用于游戏进行时。
我面临的问题是,当我尝试循环运行程序以随着游戏的进行不断获取信息时(理想情况下,我的程序会捕获每个音高更新),我的网络爬虫无法跟上。似乎网络抓取工具每 3-4 分钟抓取一次 HTML,然后如果我继续运行它,它会从某处的缓存中获取数据。当我在桌面上刷新页面时,我可以看到页面已更新。但是当程序在我的 Raspberry pi 0 上运行时,它大约 3-4 分钟看不到页面的更新。
例如,当我在我的 rpi 上运行脚本时,它会捕捉游戏中的某个时刻。2 出局、1 球、2 好球等。在我的桌面浏览器上查看时,游戏将继续,网页将更新。2 出局,2 球,2 次好球...... 2 次出局,3 球,2 次好球......等等。但如果我继续在我的 rpi 上运行脚本,它仍然会看到/显示 2 次出局,1 球,2 次好球这与我在桌面上看到的不匹配。然后大约 3-4 分钟后,我的 rpi 将更新并再次匹配我在桌面上看到的内容。
如有必要,我可以发布代码,但我倾向于这是对 BS4 库的工作原理缺乏了解。与此同时,我将通读文档,但希望有人知道我的问题。谢谢!
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
# Set the URL you want to webscrape from
url = 'https://www.mlb.com/astros/scores'
while again:
# Connect to the URL
uClient = uReq(url)
page_html = uClient.read()
uClient.close()
#set html parsing
page_soup = soup(page_html,"html.parser")
data = page_soup.find('div',{'data-test-mlb':'singleGameContainer'})