如何用Python解析JavaScript结果

0 投票
1 回答
772 浏览
提问于 2025-04-18 03:16

我在使用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

撰写回答