Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686

Как записать все названия из html страниц в базу данных

05.01.2022, 13:06. Показов 419. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Вот код. По результату вижу из 231 страницы html только из некоторых были изъяты несколько названий. Остальные не были обработаны. Как правильно обработать эти html файлы? Что делать? Прошу помощи.

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from bs4 import BeautifulSoup
import sqlite3
 
 
 
def write_sqlite3(data):
    base = sqlite3.connect('folding_courses .db')
    cur = base.cursor()
 
    base.execute(
        'CREATE TABLE IF NOT EXISTS clubbing_on_courses  (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, course_name TEXT NOT NULL UNIQUE, author TEXT NOT NULL)')
    base.commit()
 
    try:
        cur.execute('INSERT INTO clubbing_on_courses VALUES(?, ?, ?)', (None, data['name'], data['author']))
    except sqlite3.IntegrityError as err:
        print(data['name'], '. ', 'АВТОР', ' - ', data['author'])
        # with open("Совпадающие названия.txt", "a+", encoding="utf8") as f:
        # try:
        # f.writelines([data['name'],'. ','АВТОР',' - ', data['author']])
        # f.write('\n')
        # finally:
        # f.close()
 
    base.commit()
 
 
def wcourse(fname):    
    soup = BeautifulSoup(open(fname, encoding="utf8"), "lxml")
    for i in range(1, 21):
        try:
            str = ' '.join(
                soup.find('a', id=f'js-XFUniqueId{7 + 2 * i}').text.replace("\n", "").replace(')', '').split())
        except:
            str = ' '.join(
                soup.find('a', id=f'js-XFUniqueId{8 + 2 * i}').text.replace("\n", "").replace(')', '').split())
            str = str.split('@')
            str = str[0].split('(')
        try:
            data = {'name': str[0].strip(),
                    'author': str[1].strip()
                    }
        except:
            data = {'name': str[0].strip(),
                    'author': ' '
                    }
            print(data)
            write_sqlite3(data)
 
 
def main():
    for j in range(1, 232):
        namef = "psixologija{n}.html".format(n=j)
        print(namef)
        wcourse(namef)
 
 
if __name__ == '__main__':
    main()
Результат
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
C:\Users\user\AppData\Local\Programs\Python\Python310\python.exe C:/Users/user/openpage/write_course.py
psixologija1.html
psixologija2.html
{'name': '[Трансерфинг Центр] Трансерфинг: слайдим деньги', 'author': ' '}
[Трансерфинг Центр] Трансерфинг: слайдим деньги .  АВТОР  -   
psixologija3.html
psixologija4.html
{'name': 'Годовая подписка [Mindvalley]', 'author': ' '}
Годовая подписка [Mindvalley] .  АВТОР  -   
psixologija5.html
psixologija6.html
psixologija7.html
psixologija8.html
psixologija9.html
psixologija10.html
psixologija11.html
psixologija12.html
psixologija13.html
psixologija14.html
psixologija15.html
psixologija16.html
psixologija17.html
psixologija18.html
psixologija19.html
psixologija20.html
psixologija21.html
psixologija22.html
psixologija23.html
psixologija24.html
psixologija25.html
psixologija26.html
psixologija27.html
psixologija28.html
psixologija29.html
psixologija30.html
psixologija31.html
psixologija32.html
psixologija33.html
psixologija34.html
psixologija35.html
psixologija36.html
psixologija37.html
psixologija38.html
psixologija39.html
psixologija40.html
psixologija41.html
psixologija42.html
psixologija43.html
psixologija44.html
psixologija45.html
psixologija46.html
psixologija47.html
psixologija48.html
psixologija49.html
psixologija50.html
psixologija51.html
psixologija52.html
psixologija53.html
psixologija54.html
psixologija55.html
psixologija56.html
psixologija57.html
psixologija58.html
psixologija59.html
psixologija60.html
psixologija61.html
psixologija62.html
psixologija63.html
psixologija64.html
psixologija65.html
psixologija66.html
psixologija67.html
psixologija68.html
psixologija69.html
psixologija70.html
psixologija71.html
psixologija72.html
psixologija73.html
psixologija74.html
psixologija75.html
psixologija76.html
psixologija77.html
psixologija78.html
psixologija79.html
psixologija80.html
psixologija81.html
psixologija82.html
psixologija83.html
psixologija84.html
psixologija85.html
psixologija86.html
psixologija87.html
psixologija88.html
psixologija89.html
psixologija90.html
psixologija91.html
psixologija92.html
psixologija93.html
psixologija94.html
psixologija95.html
psixologija96.html
psixologija97.html
psixologija98.html
psixologija99.html
psixologija100.html
psixologija101.html
psixologija102.html
psixologija103.html
psixologija104.html
psixologija105.html
psixologija106.html
psixologija107.html
psixologija108.html
psixologija109.html
psixologija110.html
psixologija111.html
psixologija112.html
psixologija113.html
psixologija114.html
psixologija115.html
psixologija116.html
psixologija117.html
psixologija118.html
psixologija119.html
psixologija120.html
psixologija121.html
psixologija122.html
psixologija123.html
psixologija124.html
{'name': 'Блок 2. Аромапсихология и принципы тонкой настройки вопросов по методу работы с тремя типами мозга', 'author': ' '}
Блок 2. Аромапсихология и принципы тонкой настройки вопросов по методу работы с тремя типами мозга .  АВТОР  -   
{'name': 'Полный видеокурс для самостоятельной дрессировки. Тариф «Premium» [SunnyDog]', 'author': ' '}
Полный видеокурс для самостоятельной дрессировки. Тариф «Premium» [SunnyDog] .  АВТОР  -   
{'name': '[Monta] Учимся ставить счастливые самосбывающиеся цели. Весь курс', 'author': ' '}
[Monta] Учимся ставить счастливые самосбывающиеся цели. Весь курс .  АВТОР  -   
{'name': '[Системная психология] Родовая система. Отношения с родителями', 'author': ' '}
[Системная психология] Родовая система. Отношения с родителями .  АВТОР  -   
psixologija125.html
psixologija126.html
psixologija127.html
{'name': '[Somvi] Аудиальная психокоррекционная программа «No Smoke»', 'author': ' '}
[Somvi] Аудиальная психокоррекционная программа «No Smoke» .  АВТОР  -   
{'name': '[Московский Институт Психоанализа] Практическая психология и коучинг Магистратура', 'author': ' '}
[Московский Институт Психоанализа] Практическая психология и коучинг Магистратура .  АВТОР  -   
psixologija128.html
psixologija129.html
psixologija130.html
psixologija131.html
psixologija132.html
psixologija133.html
psixologija134.html
psixologija135.html
psixologija136.html
psixologija137.html
psixologija138.html
{'name': '[4Brain] Построение отношений', 'author': ' '}
[4Brain] Построение отношений .  АВТОР  -   
psixologija139.html
{'name': 'Программа Шагов', 'author': ' '}
Программа Шагов .  АВТОР  -   
psixologija140.html
psixologija141.html
psixologija142.html
psixologija143.html
psixologija144.html
psixologija145.html
psixologija146.html
psixologija147.html
psixologija148.html
Traceback (most recent call last):
  File "C:\Users\user\openpage\write_course.py", line 35, in wcourse
    soup.find('a', id=f'js-XFUniqueId{7 + 2 * i}').text.replace("\n", "").replace(')', '').split())
AttributeError: 'NoneType' object has no attribute 'text'
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "C:\Users\user\openpage\write_course.py", line 62, in <module>
    main()
  File "C:\Users\user\openpage\write_course.py", line 58, in main
    wcourse(namef)
  File "C:\Users\user\openpage\write_course.py", line 38, in wcourse
    soup.find('a', id=f'js-XFUniqueId{8 + 2 * i}').text.replace("\n", "").replace(')', '').split())
AttributeError: 'NoneType' object has no attribute 'text'
 
Process finished with exit code 1
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.01.2022, 13:06
Ответы с готовыми решениями:

Как собрать все названия классов из файла html в отдельный массив
нужно написать рекурсивную функцию, собирающую все названия классов из файла html в отдельный массив. массив вывести в консоль я...

Сменил все названия страниц
Сайт индексируется в поисковиках, индексируется каждая страничка. Пришлось переводить сайт на DLE, соответственно, поменялись все...

Как привязать базу данных к html?
На моем хостинге есть база данных, которую я сделал, но я не знаю как её присоединить к html.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.01.2022, 13:06
Помогаю со студенческими работами здесь

Как записать массив в базу данных
Добрый день) Помогите пожалуйста писать запрос на Sql-e Вот задача В метод приходит два одномерных массивов 1-ая string...

Как записать данные в базу данных?
Доброе время суток, а подскажите пожалуйста, как записать в таблицу список:( 1 строка 2 строка 3 строка) данных?

Как записать в базу данных значения
Добрый день! Устанавливаю Робокассу. И хочу что бы при успешном платеже данные заносились в Бд, но чет совсем не выходит. Мне нужно что...

Как записать информацию в базу данных?
Здравствуйте. У меня есть: - база данных, которую я добавил в проект - далее из окна Источники данных я перетащил таблицу в форму...

Как записать изображение в базу данных
как вместе с текстом сообщения ( вопроса ) прикрепить изображение ( картинку ) , наверное файл типа &quot;....gif&quot; спасибо


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru