我试图从网站上刮掉赔率。目前我的代码可以打印游戏的最后一个奇怪但不是全部。我做错了什么想法?
from bs4 import BeautifulSoup
from urllib.request import urlopen as uReq
my_url = 'https://www.sportsbet.com.au/betting/australian-rules'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
soup = BeautifulSoup(page_html, "html.parser")
price_texts = soup.findAll("div",{"class":"priceText_f71sibe"})
filename = "odds.csv"
f = open(filename,"w")
headers = "odds team 1\n"
f.write(headers)
for price_text in price_texts:
odds = price_text.span.text
print("odds are: "+odds)
f.write(odds)
f.close()
当然它只打印最后几个赔率,因为你在print
循环之外写了f.write()
和for
部分。 odds
值每次都会改变,直到循环停止。你应该通过在print
和f.write(odds)
上添加缩进来使它们在循环中:
for price_text in price_texts:
odds = price_text.span.text
print("odds are: "+ odds)
f.write(odds)