@srnsdlmtn

Можно ли на Python спарсить таблицу по столбцам?

вот тут задавал вопрос насчёт парсинга сайта Как спарсить сайт на python?
спарсить получилось, но дело вот в чём:

import lxml.html
import requests

page = requests.get('https://rasp.nsuem.ru/group/2722').text
parser = lxml.html.fromstring(page)

section = parser.cssselect('.info.centered')
time = parser.cssselect('.time')
name = parser.cssselect('.mainScheduleInfo')

template = 'Name: {}, Time: {}, Name: {}'
for i in zip(section, time, name):
    print(template.format(*[j.text for j in i]))


Этот код выдаёт вот такую вещь:


Name:
, Time: 11:25, Name: Разработка и администр. ПО для Web,
Name: пн, Time: 13:20, Name: Разработка и администр. ПО для Web,
Name: None, Time: 15:05, Name: Разработка ПО для мобильных устройс,
Name: None, Time: 16:50, Name: Разработка ПО для мобильных устройс,
Name: None, Time: 11:25, Name: Разработка ПО для мобильных устройс,
Name: None, Time: 13:20, Name: Разработка ПО для мобильных устройс,
Name: вт, Time: 15:05, Name: Разработка ПО для мобильных устройс,
Name: None, Time: 16:50, Name: Разработка ПО для мобильных устройс,
Name: None, Time: 18:30, Name: Проектирование Web-приложений,
Name: None, Time: 15:05, Name: Проектирование Web-приложений,
Name: None, Time: 16:50, Name: Проектирование Web-приложений,
Name: None, Time: 8:00, Name: Проектирование Web-приложений,
Name: ср, Time: 9:40, Name: Проектирование Web-приложений,
Name: None, Time: 15:05, Name: Обеспечение безопасности Web-прилож,
Name: None, Time: 16:50, Name: Обеспечение безопасности Web-прилож,
Name: чт, Time: 18:30, Name: Обеспечение безопасности Web-прилож,
Name: None, Time: 13:20, Name: Мультимедиа технологии,
Name: None, Time: 15:05, Name: Мультимедиа технологии,
Name: пт, Time: 16:50, Name: Мультимедиа технологии,
Name: None, Time: 15:05, Name: Мультимедиа технологии,
Name: None, Time: 16:50, Name: Разработка и администр. ПО для Web,
Name: None, Time: 18:30, Name: Проектирование Web-приложений,
Name: сб, Time: 13:20, Name: Разработка и администр. ПО для Web,
Name: None, Time: 15:05, Name: Проектирование Web-приложений,
Name: None, Time: 16:50, Name: Разработка и администр. ПО для Web,
Name: None, Time: 16:50, Name: Разработка и администр. ПО для Web,


Это вроде как нормально и то что надо, но проблема в том, что расписание на сайте https://rasp.nsuem.ru/group/2722 группируется по столбцам первая неделя и вторая неделя, а выводится всё построчно, как то можно реализовать вывод по столбцам? желательно отдельно первую отдельно вторую
  • Вопрос задан
  • 588 просмотров
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
xpath все никак? ))

f = open(name, 'r')
            text = f.read()
            ev = html.document_fromstring(text)

            item = {}
            item['s']=[]

            itemdata = ev.xpath('//li[@class="itr"]')

            for evv in itemdata:
                itm={}
                itm['l'] =  evv.xpath('./a[@class="js"]/@href')
                itm['txt'] =  evv.xpath('./a[@class="js"]/text()')

                if itm:
                    item['s'].append(itm)

            if item['s']:
                coll.save(item)


тут алгоритм, который я прошлый раз тебе описывал:
сначала выцепляещь блок, потом проходишься внутри блока
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 10:57
50000 руб./за проект
28 нояб. 2024, в 10:52
10000 руб./за проект