0 / 0 / 0
Регистрация: 13.08.2016
Сообщений: 28

Парсинг сайта с последующим выводом определенных значений. Оптимизация кода

06.04.2020, 13:58. Показов 2760. Ответов 5

Студворк — интернет-сервис помощи студентам
Здравствуйте всем.
Кусок кода, который парсит по ключевым словам номера заказов, затем сохраняет список в текстовый файл и считывает для возврата функции.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 #Исходный код страницы
    requiredHtml = browser.page_source #Исходный код страницы
 # Парсим теги
    soup = BeautifulSoup(requiredHtml, 'html5lib')
    main_title = soup.find_all('span', {"class": "btn-title"})  # Ищем определенный класс
 # Сохраняем номера заказов в txt
    with open("test.txt","w",encoding="utf-8") as f:
        for title in main_title:
            orders = title.text.strip()
            print (orders)
            f.write(str(orders) + '\n')
 # Открываем наш txt и считываем наш список и возращаем функцию
    with open ('test.txt', 'r',encoding="utf-8") as f:
        txt_orders = f.read()
        return txt_orders #Возращаем заказы
 
"""
В итоге получем результат из файла:
№31233
№432444
№234236
№23445
№532432
"""
Теперь такой вопрос, как упрастить всё это извращение) без записи в файлов. И также творой вопрос, как объеденить списки точно такой же функции с другими ключивыми словами - "статус заказа", либо засунуть её в этот код. К примеру, такой текст, чтоб потом его можно было возвратить в функцию:
Code
1
2
3
12345: Готово
№31234: Тестируется
№31244: На диагностике
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2020, 13:58
Ответы с готовыми решениями:

Проблема с выводом определенных значений по условию в csv файлах
Здравствуйте, у меня возникла проблема с выводом определенных значений по условию в csv файлах. Вот код: napravlenie = databook] for...

Оптимизация кода поиска определенных байт в памяти
public int findsignature(int PID, byte signature) { unsafe { long MaxAddr =...

Парсинг строки - возможна ли оптимизация кода?
Доброго времени суток уважаемые форумчане! Требуется распарсить строку из БД на 3 составляющие для последующего составления запроса. ...

5
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
06.04.2020, 14:08
Python
1
2
3
4
5
6
7
    #Исходный код страницы
    requiredHtml = browser.page_source #Исходный код страницы
    # Парсим теги
    soup = BeautifulSoup(requiredHtml, 'html5lib')
    main_title = soup.find_all('span', {"class": "btn-title"})  # Ищем определенный класс
    # Возвращаем заказы
    return '\n'.join(title.text.strip() for title in main_title)
Будет делать то же самое но без записи в файл.

Второй вопрос не понял.
1
0 / 0 / 0
Регистрация: 13.08.2016
Сообщений: 28
06.04.2020, 14:18  [ТС]
Спасибо, всё работает. По поводу второго вопроса:
Есть две функции:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
    #Исходный код страницы
    requiredHtml = browser.page_source #Исходный код страницы
    # Парсим теги
    soup = BeautifulSoup(requiredHtml, 'html5lib')
    main_title = soup.find_all('span', {"class": "btn-title"})  # Ищем определенный класс
    # Возвращаем заказы
    return '\n'.join(title.text.strip() for title in main_title)
"""
На выводе получается такой список:
Готово
Тестируется
На диагностике
"""
Разница в поиске: main_title = soup.find_all('a', {"class": "js-order-link"}) #
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    #Исходный код страницы
    requiredHtml = browser.page_source #Исходный код страницы
    # Парсим теги
    soup = BeautifulSoup(requiredHtml, 'html5lib')
    main_title = soup.find_all('a', {"class": "js-order-link"}) # Ищем определенный класс
    # Возвращаем заказы
    return '\n'.join(title.text.strip() for title in main_title)
 
 
"""
На выводе получается такой список:
№12345
№31234
№31244
"""
Как можно объеденить эти списки с разделителем ":". Или можно как то это засунуть в одну функцию
№12345: Готово
№31234: Тестируется
№31244: На диагностике
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
06.04.2020, 14:32
Лучший ответ Сообщение было отмечено Bunnyone как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
    #Исходный код страницы
    requiredHtml = browser.page_source #Исходный код страницы
    # Парсим теги
    soup = BeautifulSoup(requiredHtml, 'html5lib')
 
    # Ищем определенный класс c номерами заказов
    main_title1 = soup.find_all('span', {"class": "btn-title"})
    # Ищем определенный класс cо статусами заказов
    main_title2 = soup.find_all('a', {"class": "js-order-link"})
 
    # Возвращаем заказы
    return '\n'.join(': '.join(item[0].text.strip(), item[1].text.strip())
                     for item in zip(main_title1, main_title2))
Так?
0
0 / 0 / 0
Регистрация: 13.08.2016
Сообщений: 28
06.04.2020, 14:57  [ТС]
Выдает такую вот ошибку
Code
1
TypeError occurred, args=('join() takes exactly one argument (2 given)
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
06.04.2020, 15:01
Лучший ответ Сообщение было отмечено Bunnyone как решение

Решение

Python
1
2
return '\n'.join(': '.join([item[0].text.strip(), item[1].text.strip()])
                     for item in zip(main_title1, main_title2))
Скобочки не поставил
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2020, 15:01
Помогаю со студенческими работами здесь

Проверка кода сайта на ошибки и оптимизация
Всем привет! Я начинающий веб-разработчик. Написал свой первый сайт и хотел бы что-бы вы проверили его на всякого рода ошибки, неправильную...

Парсинг кода элемента сайта
Здравствуйте! Помогите пожалуйста написать программу которая парсит элемент(строка которая обновляется каждый раз на сайте через время )...

Оптимизация кода страницы школьного сайта на HTML
Всем доброго времени суток. Читая данный форум и другие ресурсы, стараюсь как могу улучшить код сайта. Для кого-то это само собой...

Парсинг html кода с сайта tchromium
Уже 4 день подряд пытаюсь написать программу которая копировала б html код с сайта в мемо с помощью tchromium .Если не сложно...

Оптимизация кода программы по вычислению значений функции
Требуется помощь в оптимизации кода на C#. Задание было следующее: Составить программу для вычисления и печати значений функции из таблицы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru