Python, если не совпадает с beautifulsoup и urllib

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

import urllib.request
import bs4 as bs


while True:
    # Request Webpage
    url = 
urllib.request.urlopen('https://markets.businessinsider.com/index/realtime-chart/dow_jones').read()

    # Raw Webpage
    rawpage = bs.BeautifulSoup(url, 'lxml')

    price = rawpage.find_all('span', class_='push-data')[0]
    change = rawpage.find_all('span', class_='push-data')[1]
    currenttime = rawpage.find_all('span', class_='push-data')[3]
    new_time = ""

    if new_time != currenttime:
        print(price.text)
        print(change.text)
        print(currenttime.text)

вам нужно определить какое-то значение для new_time, а в if не должно ли это быть new_time != currenttime.text?

Upasana Mittal 10.08.2018 16:39

Пробовал, но все еще не работает. :(

Kamikaze_goldfish 10.08.2018 16:47

Я это тестирую. скажите мне стоимость new_time

Upasana Mittal 10.08.2018 16:51

Опущу мой последний комментарий. Я установил начальное значение new_time, а затем изменил if new_time != currenttime: на `if currenttime! = New_time:`, и, похоже, он работает.

Kamikaze_goldfish 10.08.2018 16:55
0
4
33
1

Ответы 1

import urllib.request
import bs4 as bs
import csv

#Request Webpage
url = urllib.request.urlopen('https://markets.businessinsider.com/index/realtime-chart/dow_jones').read()

# Raw Webpage

rawpage = bs.BeautifulSoup(url, 'lxml')
new_time = rawpage.find_all('span', class_='push-data')[3]
price = rawpage.find_all('span', class_='push-data')[0]
change = rawpage.find_all('span', class_='push-data')[1]
all_data = [price.text, change.text, new_time.text]
print(all_data)
try:
    with open("dow_price.csv", "w+", newline="") as dow_writer:
        writer = csv.writer(dow_writer)
        writer.writerow(all_data)
except:
    pass


while True:
    # Request Webpage
    url = urllib.request.urlopen('https://markets.businessinsider.com/index/realtime-chart/dow_jones').read()

# Raw Webpage
rawpage = bs.BeautifulSoup(url, 'lxml')

price = rawpage.find_all('span', class_='push-data')[0]
change = rawpage.find_all('span', class_='push-data')[1]
currenttime = rawpage.find_all('span', class_='push-data')[3]


if currenttime != new_time:
    all_data = [price.text, change.text, currenttime.text]
    try:
        with open("dow_price.csv", "a", newline='') as dow_writer:
            writer = csv.writer(dow_writer)
            writer.writerow(all_data)
    except:
        pass
    print(all_data)
new_time = currenttime
url = ""
rawpage = ""

Другие вопросы по теме