Python:有没有一种方法可以获得由Javascript动态创建的HTML

Python: Is there a way to get HTML that was dynamically created by Javascript?

本文关键字:Javascript 动态 HTML 创建 有没有 方法 一种 Python      更新时间:2023-09-26

据我所知,LyricWikia就是这样。歌词(例如)可以从浏览器访问,但在源代码中找不到(在大多数浏览器中可以用CTRL+U打开)或用Python:读取网站内容

from urllib.request import urlopen
URL = 'http://lyrics.wikia.com/Billy_Joel:Piano_Man'
r = urlopen(URL).read().decode('utf-8')

测试:

>>> 'Now John at the bar is a friend of mine' in r
False
>>> 'John' in r
False

但是,当您选择并查看显示歌词的框的源代码时,您可以看到:<div class="lyricbox">[...]</div>

有没有一种方法可以用Python获取div-元素的内容?

您可以尝试Ghost.py,它本质上是Python的Phantom.js。它嵌入了WebKit,因此能够在页面上执行JavaScript,就像您手动导航到页面一样。然后,它允许您访问DOM结构。