2016-06-14 79 views
-1

我剛開始在Python中使用beautifulsoup模塊,我的代碼是從網站上查看活蟋蟀評分。我做了它,但結果是打印兩次。在python中使用beautifulsoup模塊時兩次打印的結果

這裏是我的代碼

import requests, bs4 
from BeautifulSoup import * 

res = requests.get('http://www.cricbuzz.com/cricket-match/live-scores') 
res.raise_for_status() 
soup = bs4.BeautifulSoup(res.text) 
mydivs = soup.findAll("div", { "class" : "cb-lv-scrs-col cb-font-12 text-black" }) 
le=len(mydivs) 
result="" 
for l in range(0,le-1): 
    result += str(mydivs[l].text)+'\n' 
print(result) 

,其結果是這樣的:

IND129/2(26.5 OVS)  •   ZIM126(34.3 OVS)

WI266/6(45.4 OVS )  •   AUS265/7(50.0 Ovs)

IND129/2(26.5 O VS)  •   ZIM126(34.3 OVS)

WI266/6(45.4 OVS)  •   AUS265/7(50.0 OVS)

請讓我知道我犯了錯

+0

一些事情:修復帖子中的縮進。 'range()'具有唯一的上限,所以不要從'le'中減去1。另外,不要在範圍內使用l(......):'在Python中完全可以直接遍歷容器:'在mydivs:'中使用div。你的代碼適用於我,沒有可見的重複。 –

回答

0

我已經編輯了適當的indendation你的代碼,並希望對你有用。

上面的代碼,

import requests, bs4 

res = requests.get('http://www.cricbuzz.com/cricket-match/live-scores') 
res.raise_for_status() 
soup = bs4.BeautifulSoup(res.text) 
mydivs = soup.findAll("div", { "class" : "cb-lv-scrs-col cb-font-12 text-black" }) 
le = len(mydivs) 
result = "" 
for l in range(0,le-1): 
    result += mydivs[l].text + "\n" 
print(result) 

我已經得到了輸出,

IND 129/2 (26.5 Ovs)  •  ZIM 126 (34.3 Ovs) 
WI 266/6 (45.4 Ovs)  •  AUS 265/7 (50.0 Ovs) 

所以,我相信你已經把printfor循環中。