我试图使用BeautifulSoup从fanduel中为一场典型的棒球比赛划出一条线,但我发现(正如this person所做的那样),当我尝试一些标准的东西时,很多数据都没有显示出来
import requests
from bs4 import BeautifulSoup
page = requests.get(<some url>)
soup = BeautifulSoup(page.content, 'html.parser')
我知道我可以获得do Dev工具->;网络选项卡->;XHR获取包含站点正在使用的数据的json,但我无法找到与HTML中相同的值
我会举一个例子,但一天后可能会不好,因为页面将消失。这是明天Rangers Dodgers game的在线页面。你可以点击并看到(截至目前为止)道奇队的赔率为-1.5,为-146。我想删掉这个数字(-146),但在json数据中找不到它
你知道我如何在json或HTML中找到这种东西吗?谢谢
这可能发生在您身上,因为某些网页使用java脚本加载元素,在这种情况下,您使用请求接收的html源可能不包含所有元素。您可以通过右键单击页面并选择“查看源”来检查这一点,如果您需要的数据在源文件中,您可以使用Beautiful Soup解析它,否则为了获得动态加载的内容,我建议selenium
看起来我为你的参考链接提供了解决方案。这些行在json中,只是“原始”形式,所以需要计算出来:
输出:
否则,您可以按照建议使用selenium并以这种方式解析html。不过,这会降低效率
相关问题 更多 >
编程相关推荐