如何用Python解析JavaScript结果
我在使用Python脚本时遇到了一些麻烦。我想做的就是解析一个id为"value:value"的div元素,并把所有改变过的值存储起来。这个元素的值是由JavaScript生成的,也就是说,这个值是根据用户输入而变化的。更具体地说,这个HTML元素长得像这样:
<div id="value">...Here the frequently changed value generated by javascript...</div>
我的Python脚本如下:
from bs4 import BeautifulSoup
import urllib
x=urllib.urlopen("http://example.com")
s = x.read()
soup = BeautifulSoup(s)
m = soup.find("div",{"id":"value"})
val = m.text
print val
但是结果是None,而在网页上变化是很明显的!请帮我想想该怎么解决这个问题。
1 个回答
0
如果这个值是通过JavaScript生成的,最简单的解决办法就是使用一个真实的浏览器来抓取网页。这时候,selenium 就派上用场了。下面是一个简单的例子:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://example.com')
element = browser.find_element_by_id('value')
print element.text