BeautifulSoup 不会返回所有数据 [英] BeautifulSoup does not returns all data

查看:24
本文介绍了BeautifulSoup 不会返回所有数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我今天正在尝试使用 Python 库 BeautifulSoup 解析月相的一些数据.

from bs4 import BeautifulSoup导入 urllib2Moon_url = "http://www.moongiant.com/phase/today/"尝试:rqest = urllib2.urlopen(moon_url)Moon_Soup = BeautifulSoup(rqest, 'lxml')月亮角度 = 0月亮照明 = 0main_data = Moon_Soup.find('div', {'id' : 'moonDetails'})打印 main_data除了 urllib2.URLError:打印错误"

但是输出而不是这个:

相位:<span>打蜡新月</span><br>照度:<span>36%</span><br>月球年龄:<span>6.00 天</span><br>月球角度:<span>0.55</span><br>月球距离:<span>364,</span>434.78 km<br>太阳角:<span>0.53</span><br>太阳距离:<span>149,</span>571,918.47 km<br>

仅仅是这样:

有什么想法吗?

解决方案

其实在RaminNietzsche 的评论之后我使用了dryscrape 库.

from bs4 import BeautifulSoup导入 urllib2进口干刮Moon_url = "http://www.moongiant.com/phase/today/"尝试:rqest = urllib2.urlopen(moon_url)session = dryscrape.Session()session.visit(moon_url)响应 = session.body()汤 = BeautifulSoup(响应,'lxml')月亮数据 = 汤.findAll('div', {'id':'moonDetails'})打印moon_data

结果现在是:

相位:<span>打蜡新月</span><br>照度:<span>36%</span><br>月球年龄:<span>6.00 天</span><br>月球角度:<span>0.55</span><br>月球距离:<span>364,</span>434.78 km<br>太阳角:<span>0.53</span><br>太阳距离:<span>149,</span>571,918.47 km<br>

谢谢大家的回答!

I'm trying to parse some data for the moon phase today using Python's library 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"

But the output instead of this:

<div id="moonDetails">        
      Phase: <span>Waxing Crescent</span><br>Illumination: <span>36%
</span><br>Moon Age: <span>6.00 days</span><br>Moon Angle: <span>0.55</span><br>Moon Distance: <span>364,</span>434.78 km<br>Sun Angle: <span>0.53</span><br>Sun Distance: <span>149,</span>571,918.47 km<br>
</div>

Is only this:

<div id="moonDetails">
</div>

Any idea?

解决方案

Actually after the RaminNietzsche's comment I used dryscrape library.

from bs4 import BeautifulSoup
import urllib2
import dryscrape

    moon_url = "http://www.moongiant.com/phase/today/"

try:
    rqest =  urllib2.urlopen(moon_url)
    session = dryscrape.Session()
    session.visit(moon_url)
    response = session.body()
    soup = BeautifulSoup(response, 'lxml')

    moon_data = soup.findAll('div', {'id':'moonDetails'})
    print moon_data

As a result the output now is:

<div id="moonDetails">        
      Phase: <span>Waxing Crescent</span><br>Illumination: <span>36%
</span><br>Moon Age: <span>6.00 days</span><br>Moon Angle: <span>0.55</span><br>Moon Distance: <span>364,</span>434.78 km<br>Sun Angle: <span>0.53</span><br>Sun Distance: <span>149,</span>571,918.47 km<br>
</div>

Thank's everyone for the answers!

这篇关于BeautifulSoup 不会返回所有数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆