我试图从网页中获取与不同参与者相关的表的内容。我要找的信息已经在图像中打了出来,请您理解。目前我的脚本只能给出不同参与者的名字。我也希望分析与这些与会者有关的资料。在
由于内容是动态的,我不得不使用一些公共API,这些API可以使用dev工具检索到。在
The image表示信息在该页面中的显示方式。我想抓住一条贯穿线。在
This isAPI响应的外观。在
我已经试过了:
import re
import requests
url = 'https://www.bet365.com.au/SportsBook.API/web?'
params = {
'lid': '30',
'zid': '0',
'pd': '#AC#B151#C1#D50#E2#F163#',
'cid': '13',
'ctid': '13'
}
r = requests.get(url, params=params,headers={'User-Agent':'Mozilla/5.0'})
games = re.finditer(r'NA=(.*?);', r.text)
for game in games:
if not 'v' in game.group(): continue
print(game.group(1))
我得到的输出如下(部分):
^{pr2}$我希望得到的输出如下(部分):
^{3}$How can I grab the tabular contents attached to different participants?
这里可见的信息可能不一样,因为他们每几分钟更新一次,我希望用我已经尝试过的请求来完成任务。在
如果您要使用
Bet365
api,那么您需要找到一种方法来了解如何解码网站的输出,以及JS部分如何工作以呈现我们在实际网站中看到的内容。我认为这不是一件容易的事。 这就是为什么我建议您使用Selenium
和BeautifulSoup
在浏览器选项卡下加载网站,然后使用Beautifulsoup
来使用最终的HTML,这将降低从网站中提取内容的复杂性。在下面是一个如何使用
Chrome
的headless
模式来抓取tournments, dates and matches
:PS:cookie部分不是必需的,但它有助于自动加载我们试图抓取的页面。在
首先需要安装:
pip install webdriver-manager
,然后:输出:
^{pr2}$我帮你解决了第一个问题的代码。尽管其他2个答案使用Selenium,但这是不必要的,因为网站的api端点用于查找游戏。这种方法应该比硒更快。我可以再次使用正则表达式解析其他信息。然而,在实际的网站上,我没能找到像你期望的输出一样的“1-1”。希望这有帮助。《纽约时报》可能有问题,我不太确定。在
代码
输出
^{pr2}$您可以使用
selenium
:输出:
^{pr2}$相关问题 更多 >
编程相关推荐