如何在 python 中将 JavaScript HTML 渲染为 HTML?
How can I render JavaScript HTML to HTML in python?
我环顾四周,只找到了将 URL 渲染为 HTML 的解决方案。但是,我需要一种方法来呈现网页(我已经拥有,并且具有 JavaScript)以正确 HTML.
想要:
网页(JavaScript)---> HTML
不是:URL --> 网页(带JavaScript)---> HTML
我不知道如何让其他代码按我想要的方式工作。
这是我使用的呈现 URLs 的代码:
http://webscraping.com/blog/Scraping-JavaScript-webpages-with-webkit/
为清楚起见,上面的代码采用 URL 网页,该网页的某些部分由 JavaScript 呈现,因此如果我通常使用 say urllib2 抓取网页,那么我不会t 获取所有在 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()
尝试webdriver.Firefox().get('url')
我使用的模块是 request_html
。第一次使用它会自动下载一个chromium浏览器,然后你可以渲染任何网页(with 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
我环顾四周,只找到了将 URL 渲染为 HTML 的解决方案。但是,我需要一种方法来呈现网页(我已经拥有,并且具有 JavaScript)以正确 HTML.
想要: 网页(JavaScript)---> HTML
不是:URL --> 网页(带JavaScript)---> HTML
我不知道如何让其他代码按我想要的方式工作。
这是我使用的呈现 URLs 的代码: http://webscraping.com/blog/Scraping-JavaScript-webpages-with-webkit/
为清楚起见,上面的代码采用 URL 网页,该网页的某些部分由 JavaScript 呈现,因此如果我通常使用 say urllib2 抓取网页,那么我不会t 获取所有在 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()
尝试webdriver.Firefox().get('url')
我使用的模块是 request_html
。第一次使用它会自动下载一个chromium浏览器,然后你可以渲染任何网页(with 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