gpt4 book ai didi

python - 如何使用 BeautifulSoup 解析来自 Oddshark.com 的 javascript?

转载 作者:行者123 更新时间:2023-12-01 08:47:46 26 4
gpt4 key购买 nike

正在开发一个小型网络抓取程序来获取一些数据并帮助我进行一些投注。

最终,我想在这样的页面上解析本周每场比赛下的“趋势”部分( https://www.oddsshark.com/nfl/arizona-kansas-city-odds-november-11-2018-971332 )

我当前的算法:

  1. 获取https://www.oddsshark.com/nfl/scores
  2. 解析网页中的“vs”小按钮,其中包含所有游戏的链接
  3. 解析趋势

我是这样开始的:

from bs4 import BeautifulSoup
import requests

url = "https://www.oddsshark.com/nfl/scores"
result = requests.get("https://www.oddsshark.com/nfl/scores")
print ("Status: ", result.status_code)

content = result.content
soup = BeautifulSoup(content, 'html.parser')

print (soup)

当我查看输出时,我实际上没有看到任何这些链接。是不是网站很多javascript的原因?

任何有关代码/算法的指示都值得赞赏!

最佳答案

您可以使用该网站使用的内部 API 来获取所有链接并迭代这些链接,以获取嵌入在带有 id:gc-data< 的 script 标记中的趋势信息:

import requests
import json
from bs4 import BeautifulSoup

r = requests.get(
'https://io.oddsshark.com/ticker/nfl',
headers = {
'referer': 'https://www.oddsshark.com/nfl/scores'
}
)

links = [
(
t["event_date"],
t["away_name"],
t["home_name"],
"https://www.oddsshark.com{}".format(t["matchup_link"])
)
for t in r.json()['matchups']
if t["type"] == "matchup"
]

for t in links:
print("{} - {} vs {} => {}".format(t[0],t[1],t[2],t[3]))
r = requests.get(t[3])
soup = BeautifulSoup(r.content, "lxml")
trends = [
json.loads(v.text)
for v in soup.findAll('script', {"type":"application/json", "id":"gc-data"})
]
print(trends[0]["oddsshark_gamecenter"]["trends"])
print("#########################################")

关于python - 如何使用 BeautifulSoup 解析来自 Oddshark.com 的 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53239879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com