如何在python中将JavaScriptHTML渲染为HTML

How can I render JavaScript HTML to HTML in python?

本文关键字:HTML JavaScriptHTML 中将 python      更新时间:2023-09-26

我环顾四周,只找到了将URL呈现为HTML的解决方案。然而,我需要一种能够将网页(我已经有了,并且有JavaScript)呈现为正确的HTML的方法。

想要:网页(带JavaScript)--->HTML

不是:URL-->网页(带JavaScript)--->HTML

我不知道如何使其他代码按我想要的方式工作。

这是我用来呈现URL的代码:http://webscraping.com/blog/Scraping-JavaScript-webpages-with-webkit/

为了清晰起见,上面的代码采用了一个网页的URL,该网页的某些部分由JavaScript呈现,因此,如果我正常使用urllib2抓取页面,那么我将无法获得所有在JavaScript之后呈现的链接等。

然而,我希望能够抓取一个页面,再次使用urllib2,然后呈现该页面并获得结果HTML。(与上面的代码不同,因为它以URL作为参数。

感谢大家的帮助:)

您可以从命令行pip install selenium,然后运行类似的程序

from selenium import webdriver
from urllib2 import urlopen
url = 'http://www.google.com'
file_name = 'C:/Users/Desktop/test.txt'
conn = urlopen(url)
data = conn.read()
conn.close()
file = open(file_name,'wt')
file.write(data)
file.close()
browser = webdriver.Firefox()
browser.get('file:///'+file_name)
html = browser.page_source
browser.quit()

我使用的模块是request_html。第一次使用时,它会自动下载chromium浏览器,然后您可以渲染任何网页(使用JavaScript)

requests_html也支持html parsing

基本上是selenium 的替代方案

示例:

from requests_html import HTMLSession
session = HTMLSession()
r = session.get(URL)
r.html.render() # you can use r.html.render(sleep=1) if you want

尝试webdriver。Firefox().get('url')