从HTML内的Javascript提取变量

时间:2018-09-26 17:07:12

标签: python web-scraping beautifulsoup

我需要所有包含文本“ .mp4”的行。 HTML文件没有标签!

我的代码:

http://www.tribunalconstitucional.pt/tc/acordaos/?impressao=1

Friend friend=new Friend(<constructor input 
parameters>);
friend.toStringFriends(<function input 
parameters>);

1 个答案:

答案 0 :(得分:0)

您可以使用BeautifulSoup提取<script>标签,但仍需要另一种方法来提取内部信息。

可以使用某些Python首先提取flashvars,然后将其传递给demjson,以将Javascript字典转换为Python字典。例如:

import demjson

content = """<script type="text/javascript">/* <![CDATA[ */ 
... 
...
</script>"""

script_var = content.split('var flashvars = ')[1]
script_var = script_var[:script_var.find('};') + 1]
data = demjson.decode(script_var)

print(data['video_url'])
print(data['video_alt_url'])

然后将显示:

https://www.ptrex.com/get_file/4/996a9088fdf801992d24457cd51469f3f7aaaee6a0/33000/33247/33247.mp4/
https://www.ptrex.com/get_file/4/774833c428771edee2cf401ef2264e746a06f9f370/33000/33247/33247_720p.mp4/

demjson是可以通过PIP安装的替代JSON解码器

pip install demjson