用Python解析Javascript

用Python解析Javascript,python,python-2.7,beautifulsoup,Python,Python 2.7,Beautifulsoup,我通常使用BeautifulSoup来解析我需要的html,但我遇到了一些我想从中获得的Javascript 但我得到“没有Json可以被解码”。不确定如何进行此操作。您可以使用库从任意文本中提取JSON: 正如您的标签所说,您知道应该使用BeautifulSoup,但是为什么您的代码使用json.loads(URL)?请检查jsondocument,它不做您认为它做的事情。您想从脚本中提取数据吗?您首先需要将其隔离,即仅获取字符串{“…data…”:“}然后将其与json.loads一起使用b

我通常使用BeautifulSoup来解析我需要的html,但我遇到了一些我想从中获得的Javascript


但我得到“没有Json可以被解码”。不确定如何进行此操作。

您可以使用库从任意文本中提取JSON:


正如您的标签所说,您知道应该使用
BeautifulSoup
,但是为什么您的代码使用
json.loads(URL)
?请检查
json
document,它不做您认为它做的事情。您想从脚本中提取数据吗?您首先需要将其隔离,即仅获取字符串
{“…data…”:“}
然后将其与
json.loads一起使用bs4@TadhgMcDonald-詹森收到了,谢谢@TadhgJensen如何指定该数据区域?工作非常好:)
 <script>
function Model(){
    this.players = [{".....data......:""}];...etc
import json
scrape_url = "https://swishanalytics.com/optimus/nba/daily-fantasy-projections?date=2016-12-15"

result = json.loads(scrape_url)
from jsonfinder import jsonfinder
import requests

scrape_url = "https://swishanalytics.com/optimus/nba/daily-fantasy-projections?date=2016-12-15"
content = requests.get(scrape_url).text
for _, __, obj in jsonfinder(content, json_only=True):
    if (obj and
            isinstance(obj, list) and
            isinstance(obj[0], dict) and
            {'player_id', 'event_id', 'name'}.issubset(obj[0])
            ):
        break
else:
    raise ValueError('data not found')

# Now you can use obj
print(len(obj))
print(obj[0])