gpt4 book ai didi

python - 如何打印 div data-reactid?

转载 作者:行者123 更新时间:2023-11-28 01:05:34 25 4
gpt4 key购买 nike

我在业余时间做一个项目,在将数据从网页获取到程序中时遇到了问题。

这是我当前的代码:

import urllib
import re

htmlfile = urllib.urlopen("http://www.superliga.dk/klub/aab?sub=squad")

htmltext = htmlfile.read()

regex = r'<div data-reactid=".3.$squad content.0.$=11:0.0.0.0.1:0.2.0.0">([^<]*)</div>'

pattern = re.compile(regex)

goal = re.findall(pattern,htmltext)

print goal

除了这部分,它工作正常:

regex = r'<div data-reactid=".3.$squad content.0.$=11:0.0.0.0.1:0.2.0.0">([^<]*)</div>'

我不能用这个reactid让它显示网页上的所有值,我找不到任何解决这个问题的方法。关于如何让 Python 打印它有什么建议吗?

最佳答案

您正在尝试匹配您在浏览器的开发人员控制台上看到的标签,对吗?不幸的是,您看到的 html 只是动态页面的“最终形式”:您使用 urlopen 下载的只是网页的骨架,然后在浏览器中动态填充其他元素javascript 使用从某些后端服务器获取的数据。

如果您尝试打印存储在 htmltest 中的实际值,您将找不到与正则表达式匹配的任何内容,这是因为它错过了通常由javascript.

您可以尝试做的是(通过开发控制台)监控获取的资源并对 API 调用进行逆向工程以恢复所需的信息。这些 API 调用的响应很可能是 JSON 格式或具有比 html 正文更容易解析的结构。

更新:例如,在 Chrome 的开发工具中,我可以看到如下异步调用:

http://ss2.tjekscores.dk/pro-stats/tournaments/46/top-players?sortBy=eventsStats.goals&limit=5&skip=0&positionId=&q=&seasonId=10392&teamId[]=8470

也许这会返回您要查找的信息。

关于python - 如何打印 div data-reactid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918436/

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