Зацикливание и очистка веб-страниц. Как очистить несколько элементов

#python #html #web-scraping #beautifulsoup

#python #HTML #очистка веб-страниц #beautifulsoup

Вопрос:

Я пытаюсь удалить коэффициенты ставок с сайта. В настоящее время мой код может вывести последнее нечетное число игры, но не все. Есть идеи о том, что я делаю неправильно?

 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 1n"

f.write(headers)



for price_text in price_texts:
    odds = price_text.span.text

print("odds are: " odds)

f.write(odds)
f.close()
  

Ответ №1:

Конечно, он печатает только последние коэффициенты, поскольку вы пишете раздел print and 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)
  

Комментарии:

1. Черт возьми, это было так просто. Спасибо