从页面源主体中提取json

问题描述 投票:0回答:2

我正在尝试使用Python 3中的Selenium从下面的网页中删除数据:

https://www.whoscored.com/Matches/1285051/Live/England-Premier-League-2018-2019-West-Ham-Huddersfield

如果将此网址视为网页来源(对于Chrome用户:view-source:https://www.whoscored.com/Matches/1285051/Live/England-Premier-League-2018-2019-West-Ham-Huddersfield),则文本中会包含一些JSON。我的目标是刮掉第一个非常重要的JSON,它位于'var matchCentreData'位。以下是一个片段:

<script type="text/javascript">

var matchCentreData = {"playerIdNameDictionary":{"14244":"Pablo Zabaleta",
   "89998":"Manuel Lanzini","34693":"Marko Arnautovic","93026":"Felipe Anderson",
   "300359":"Issa Diop","122980"

我能够抓取整个页面源代码,但是,我正在努力只提取上面的JSON。任何帮助将非常感激!

python selenium web-scraping
2个回答
3
投票

这就是你所需要的。

page_json = driver.execute_script("return JSON.stringify(matchCentreData)")
# Do what you want with the json.

刚才为我工作。如果你想要这个特别和页面html,那么这一步,以及你的页面源抓取逻辑。当你有这个时,无需从页面源中专门提取它。


0
投票

您可能需要进行一些字符串操作。查看BeautifulSoup,我认为它将返回整个DOM,你可以做一些字符串工作来解析你的相关数据。

编辑:我看到你实际上试图从整个DOM字符串中提取json字符串。您尝试过什么子串/正则表达式?

© www.soinside.com 2019 - 2024. All rights reserved.