在python中使用beautifulsoup模块时打印两次结果

时间:2016-06-14 06:56:21

标签: python python-requests

我刚刚开始在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 Ovs)•ZIM126(34.3 Ovs)

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

请让我知道我在哪里犯了错误

1 个答案:

答案 0 :(得分:0)

我已经用适当的修改编辑了你的代码,希望对你有用。

对于上面的代码,

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)

所以,我相信你已将print置于for循环中。