我正在尝试使用Python的库BeautifulSoup来解析月球阶段的一些数据。在
from bs4 import BeautifulSoup
import urllib2
moon_url = "http://www.moongiant.com/phase/today/"
try:
rqest = urllib2.urlopen(moon_url)
moon_Soup = BeautifulSoup(rqest, 'lxml')
moon_angle = 0
moon_illumination = 0
main_data = moon_Soup.find('div', {'id' : 'moonDetails'})
print main_data
except urllib2.URLError:
print "Error"
但是输出而不是这个:
^{pr2}$只是这个:
<div id="moonDetails">
</div>
有什么想法吗?在
另一种方法,我从根的答案中抄袭了access Chrome DOM。在
其思想是,您可以同时使用selenium和lxml来访问由javascript加载和处理的页面的DOM。在
一旦完成了这一步,正如上面最后几条语句所示,您就可以访问DOM,要么作为HTML,要么作为适合用lxml处理的树。在您的例子中,您可能更喜欢用HTML来做汤;这意味着将BeautifulSoup应用于
content
。在顺便说一句,当我保存
^{pr2}$content
时,我确实在HTML中找到了以下结构,正如人们所预期的那样。在正如RaminNietzsche在注释中所述,您应该在这个特殊的}。在
script
标记中提取脚本的文本。例如,您可以使用regex
或built-in methods
(比如split()
、strip()
和{代码:
输出:
^{pr2}$因为它是作为
JSON
加载的,所以您可以这样浏览它:示例代码:
输出:
实际上,在RaminNietzsche的评论之后,我使用了dryscrape库。在
因此,现在的输出是:
^{pr2}$谢谢大家的回答!在
相关问题 更多 >
编程相关推荐