如何获取 python 中的 javascript 内容
how to fetch javascript contents in python
我有一个网站,我想获取的数据存储在 javascript 中。我如何获取它?
代码是这样的:- http://pastebin.com/zhdWT5HM
我想从 "var playersData" 行获取。我想获取这个东西:- "playerId":"showsPlayer" (显然没有引号)。我该怎么做?
我尝过美汤。我当前的脚本如下所示
q = requests.get('websitelink')
soup = BeautifulSoup(q.text)
searching = soup.findAll('script',{'type':'text/javascript'})
for playerIdin searching:
x = playerId.find_all('var playersData', limit=1)
print x
我得到 [] 作为我的输出。我在这里似乎无法弄清楚我的问题。
请帮帮伙计们:)
BeautifulSoup
只会帮助找到所需的 script
标签。然后,您将有多种选择:您可以使用 javascript 解析器提取所需的数据,例如 slimit
,或者使用正则表达式:
import re
from bs4 import BeautifulSoup
page = """
<script type="text/javascript">
var logged = true;
var video_id = 59374;
var item_type = 'official';
var debug = false;
var baseUrl = 'http://www.example.com';
var base_url = 'http://www.example.com/';
var assetsBaseUrl = 'http://www.example.com/assets';
var apiBaseUrl = 'http://www.example.com/common';
var playersData = [{"playerId":"showsPlayer","userId":true,"solution":"flash","playlist":[{"itemId":"5090","itemAK":"Movie"}]];
</script><script type="text/javascript" >
"""
soup = BeautifulSoup(page)
pattern = re.compile(r'"playerId":"(.*?)"', re.MULTILINE | re.DOTALL)
script = soup.find("script", text=pattern)
print pattern.search(script.text).group(1)
打印:
showsPlayer
我有一个网站,我想获取的数据存储在 javascript 中。我如何获取它?
代码是这样的:- http://pastebin.com/zhdWT5HM
我想从 "var playersData" 行获取。我想获取这个东西:- "playerId":"showsPlayer" (显然没有引号)。我该怎么做?
我尝过美汤。我当前的脚本如下所示
q = requests.get('websitelink')
soup = BeautifulSoup(q.text)
searching = soup.findAll('script',{'type':'text/javascript'})
for playerIdin searching:
x = playerId.find_all('var playersData', limit=1)
print x
我得到 [] 作为我的输出。我在这里似乎无法弄清楚我的问题。 请帮帮伙计们:)
BeautifulSoup
只会帮助找到所需的 script
标签。然后,您将有多种选择:您可以使用 javascript 解析器提取所需的数据,例如 slimit
,或者使用正则表达式:
import re
from bs4 import BeautifulSoup
page = """
<script type="text/javascript">
var logged = true;
var video_id = 59374;
var item_type = 'official';
var debug = false;
var baseUrl = 'http://www.example.com';
var base_url = 'http://www.example.com/';
var assetsBaseUrl = 'http://www.example.com/assets';
var apiBaseUrl = 'http://www.example.com/common';
var playersData = [{"playerId":"showsPlayer","userId":true,"solution":"flash","playlist":[{"itemId":"5090","itemAK":"Movie"}]];
</script><script type="text/javascript" >
"""
soup = BeautifulSoup(page)
pattern = re.compile(r'"playerId":"(.*?)"', re.MULTILINE | re.DOTALL)
script = soup.find("script", text=pattern)
print pattern.search(script.text).group(1)
打印:
showsPlayer