2013-02-01 89 views

回答

1

我最終解決它myself--我利用類似於isedev的策略,但我希望我能找到獲得「驗證」的數據的一種更好的方式:

import urllib2 
from bs4 import BeautifulSoup 

wfo = list() 

def main(): 
    wfo = [i.strip() for i in open('C:\Python27\wfo.txt') if i[:-1]] 
    soup = BeautifulSoup(urllib2.urlopen('http://mesonet.agron.iastate.edu/cow/?syear=2009&smonth=9&sday=12&shour=12&eyear=2012&emonth=9&eday=12&ehour=12&wfo=ABQ&wtype%5B%5D=TO&hail=1.00&lsrbuffer=15&ltype%5B%5D=T&wind=58').read()) 
    elements = soup.find_all("span") 
    find_verify = soup.find_all('th') 

    far= float(elements[1].text) 
    pod= float(elements[2].text) 
    verified = (find_verify[13].text[:-1]) 
2

如果您還沒有,請爲Firefox安裝Firebug,並使用它來檢查頁面的html源代碼。

使用urllibBeautifulSoup的組合來處理HTML檢索和解析。下面是一個簡單的例子:

import urllib 
from BeautifulSoup import BeautifulSoup 

url = 'http://mesonet.agron.iastate.edu/cow/?syear=2009&smonth=9&sday=12&shour=12&eyear=2012&emonth=9&eday=12&ehour=12&wfo=ABQ&wtype[]=TO&hail=1.00&lsrbuffer=15&ltype[]=T&wind=58' 
fp = urllib.urlopen(url).read() 
soup = BeautifulSoup(fp) 

print soup 

從這裏,我提供的鏈接應該給你一個良好的開端到如何檢索你感興趣的元素

1

像That1Guy的說,你需要分析源頁面結構。在這種情況下,你很幸運......你正在使用<span>以紅色突出顯示的數字。

這將做到這一點:

>>> import urllib2 
>>> import lxml.html 
>>> url = ... # put your URL here 
>>> html = urllib2.urlopen(url) 
>>> soup = lxml.html.soupparser.fromstring(html) 
>>> elements = soup.xpath('//th/span') 
>>> print float(elements[0].text) # FAR 
0.67 
>>> print float(elements[1].text) # POD 
0.58 

lxml.html.soupparser相當於BeautifulSoup解析器(我沒有在時刻手)漂亮多了。