【发布时间】:2018-05-11 20:02:53
【问题描述】:
这是我正在寻找的页面的来源。 Page Source。 如果页面源在此处不起作用,则仅是源的链接。 "查看源代码:https://sports.bovada.lv/baseball/mlb"
这里是链接:Link to page
我不熟悉使用bs4,但下面的脚本可以运行,但没有返回我需要的任何内容。
import requests
from bs4 import BeautifulSoup
r = requests.get('https://sports.bovada.lv/baseball/mlb/game-lines-market-group')
soup = BeautifulSoup(r.content, 'lxml')
print(soup.prettify())
我可以返回 soup 就好了。但是从网站上看到的和返回的soup 是不一样的。
目标是移除球队、投手、赔率和总得分。我可以在检查版本中清楚地看到。当我printsoup那个信息不来的时候。
然后我再深入一点,在页面源代码的底部我可以看到一个 iFrame,在它下面看起来像 json 字典,其中包含我要提取的所有内容,但运行类似的脚本来检索 json 数据却没有像我希望的那样工作:
import requests
req = requests.get('view-source:https://sports.bovada.lv//baseball/mlb/game-lines-market-group')
data = req.json()['itemList']
print(data)
我相信我应该使用bs4,但我对为什么没有返回相同的html 感到困惑。
【问题讨论】:
-
此信息由动态网页生成,即内容使用 Javascript 生成并取决于用户的选择。如果您解析 html,您将找不到数据,您会找到生成内容的 Javascript 代码。这并不意味着您不能访问数据,还有其他方法,但您可能不会在 html 源代码中找到它。您可以使用检查器查看标签,但这是因为检查器会动态呈现源代码。您可以使用 Inspector 并分析请求数据的位置。
标签: python python-3.x iframe beautifulsoup