Не могу понять, что не так с моей условной - PullRequest
0 голосов
/ 20 декабря 2018

Это код веб-скребка, который я запускаю для переноса всех своих университетских модулей в файл csv, и я не могу понять, почему мой оператор if / else не работает, пробовал много разных решений, но все же не повезло.Может я что-то упустил?Вот код (условный внизу):

from bs4 import BeautifulSoup, BeautifulStoneSoup
# import requests
import csv

with open('timetable.html', encoding='UTF-8', newline='') as html_file:
    soup = BeautifulSoup(html_file, 'lxml')

csv_file = open('lol.csv', 'w', encoding='utf-8')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['Subject', 'Start date', 'Start time', 'End time', 'Location'])

table = soup.find('table')

for modulis in table.find_all('td', class_='modclass'):
    # randam modulį

    # randam modulio pavadinimą

    pav = modulis.find_all('a')[1]
    name = pav['title']
    print(name)

    # modulio laiko pradžia

    time1 = modulis.text[0:5]
    print(time1)

    # modulio laiko pabaiga

    time2 = modulis.text[6:11]
    print(time2)

    # modulio vieta

    aud = modulis.find('a').text[1:]
    print(aud)

    # modulio data

    data = modulis.parent.find('td', class_='date').text
    if data[0] == 0:
        rand = '2019.' + data
    else:
        rand = '2018.' + data
    # rašom csv
    print(rand)
    csv_writer.writerow([name, rand, time1, time2, aud])

Он никогда не оценивается как истина, поэтому он всегда входит в выражение else, в котором ant вводит неверный год. Все мои даты заканчиваются на 2018.xx.xx, но эти месяцы, которые начинаются с 0, должны начинаться с 2019.xx.xx

Кроме того, данные ВСЕГДА в формате xx.xx, поэтому data [0] всегда выбирает первое число.

1 Ответ

0 голосов
/ 20 декабря 2018

Вы устанавливаете data как текст, затем оцениваете его как int.Просто измените его на «0», и оно должно работать.

...
data = modulis.parent.find('td', class_='date').text
if data[0] == '0':
    rand = '2019.' + data
else:
    rand = '2018.' + data
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...