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

Спарсить данные

09.08.2024, 14:15. Показов 548. Ответов 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
25
26
27
patch = r'I:оссийская Федерация\5. ГОСТ Р 52289-2019_01.04.2020.htm'
import bs4
with open(patch, 'r', encoding='utf-8') as f_in:  # исходный файл
    html_code = f_in.read()
soup = bs4.BeautifulSoup(html_code, 'html.parser')
 
tables = soup.find_all('table')
for table in tables:
    trs = table.find_all('tr')
    for i, tr in enumerate(trs):
        imgs = tr.find_all('img', src=lambda x: x and x.endswith('.jpg'))
        if imgs:
            img = imgs[0]
            src = img['src']
            filename = src.split('/')[-1]
            print(f"Image: {filename}")
            if i + 1 < len(trs):
                next_tr = trs[i + 1]
                tds = next_tr.find_all('td')
                if tds:
                    text = tds[0].get_text(strip=True)
                    print(f"Text: {text}")
                else:
                    print("Text: Not found")
            else:
                print("Text: Not found")
            print()
ответ выдаёт
Image: base_1_348566_2147483716.jpg
Text: 1.1

Image: base_1_348566_2147483720.jpg
Text: 1.4.1
а нужно
между этими двумя строками ещё имеются знаки 1.2, 1.3.1, 1.3.2
а о них не выведен ответ
и ещё как добраться к названиям знаков
1.1 = Железнодорожный переезд со шлагбаумом
1.2 = Железнодорожный переезд без шлагбаума
1.3.1 = Однопутная железная дорога
1.3.2 = Многопутная железная дорога
?? спасибо
к этому ответу относится HTML код:
HTML5
1
2
3
<td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="bottom" align="left"><div class="s0 aC bG"><img src="ГОСТ Р 52289-2019. Национальный стандарт Российской Федераци.htm_/base_1_348566_2147483716.jpg" class="aC" width="135" style="vertical-align:middle;" alt="" /></div></td><td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="bottom" align="left"><div class="s0 aC bG"><img src="ГОСТ Р 52289-2019. Национальный стандарт Российской Федераци.htm_/base_1_348566_2147483717.jpg" class="aC" width="137" style="vertical-align:middle;" alt="" /></div></td><td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="bottom" align="left"><div class="s0 aC bG"><img src="ГОСТ Р 52289-2019. Национальный стандарт Российской Федераци.htm_/base_1_348566_2147483718.jpg" class="aC" width="136" style="vertical-align:middle;" alt="" /></div></td><td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="bottom" align="left"><div class="s0 aC bG"><img src="ГОСТ Р 52289-2019. Национальный стандарт Российской Федераци.htm_/base_1_348566_2147483719.jpg" class="aC" width="136" style="vertical-align:middle;" alt="" /></div></td></tr><tr style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;">
<td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="top" align="left"><div class="s0 aC bG"><a id="Par2697" ></a>1.1</div></td><td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="top" align="left"><div class="s0 aC bG"><a id="Par2698" ></a>1.2</div></td><td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="top" align="left"><div class="s0 aC bG"><a id="Par2699" ></a>1.3.1</div></td><td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="top" align="left"><div class="s0 aC bG"><a id="Par2700" ></a>1.3.2</div></td></tr><tr style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;">
<td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="top" align="left"><div class="s0 aC bG">Железнодорожный переезд со шлагбаумом</div></td><td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="top" align="left"><div class="s0 aC bG">Железнодорожный переезд без шлагбаума</div></td><td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="top" align="left"><div class="s0 aC bG">Однопутная железная дорога</div></td><td style="padding-left: 3pt;padding-right: 3pt;padding-top: 5pt;padding-bottom: 5pt;min-height: 12pt; border-left: none; border-right: none; border-top: none; border-bottom: none; " valign="top" align="left"><div class="s0 aC bG">Многопутная железная дорога</div></td></tr></table>
Миниатюры
Спарсить данные  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.08.2024, 14:15
Ответы с готовыми решениями:

Можно ли спарсить данные с якоря?
Можно ли спарсить данные с якоря? Имеется ссылка типа https://.....#..... парсер на якорь не заходит можно ли это как то сделать?

Спарсить содержимое файла
Подскажите, как спарсить содержимое файла и прописать это в addr, чтобы не прописывать каждый раз массив #... ...

Не могу спарсить тег с сайта
Всем привет! не получается спарсить тег цены в карточке товара. Я так понимаю что без selenium тут не обойтись? import requests ...

5
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,330
10.08.2024, 11:43  [ТС]
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
import bs4
import re
patch = r'I:оссийская Федерация\5. ГОСТ Р 52289-2019_01.04.2020.htm'
with open(patch, 'r', encoding='utf-8') as f_in:
    html_code = f_in.read()
soup = bs4.BeautifulSoup(html_code, 'html.parser')
tables = soup.find_all('table')
tables = soup.find_all('table')
print(f"Количество таблиц: {len(tables)}")
for n, table in enumerate(tables):
    rows = table.find_all('tr')
    num_rows = len(rows)
    if num_rows != 1:
        first_row = rows[0]
        cells = first_row.find_all('td')  # Ищем только ячейки td
        # Проверяем, что во всех ячейках первой строки есть ссылки на изображения
        all_jpg_links = all(cell.find('img', src=re.compile(r'base_1_\d+_\d+\.jpg$')) for cell in cells)
        if all_jpg_links:
            print(f"Таблица {n+1} подходит")
            images = []
            for row in table.find_all('tr'):
                for cell in row.find_all('td'):
                    img = cell.find('img')
                    if img:
                        images.append(img['src'].split(r'/')[-1])
            texts = [cell.text.strip() for row in table.find_all('tr') for cell in row.find_all('td') if cell.text.strip()]
            # Объединяем данные
            for i in range(len(images)):
                print(f"{texts[i]}={images[i]}")
ответ
Таблица 35 подходит
1.1=base_1_348566_2147483716.jpg
1.2=base_1_348566_2147483717.jpg
1.3.1=base_1_348566_2147483718.jpg
1.3.2=base_1_348566_2147483719.jpg
как бы подправить код, чтобы было
1.1=Железнодорожный переезд со шлагбаумом=base_1_348566_2147483716 .jpg
1.2=Железнодорожный переезд без шлагбаума=base_1_348566_2147483717. jpg
1.3.1=Однопутная железная дорога=base_1_348566_2147483718.jpg
1.3.2=Многопутная железная дорога=base_1_348566_2147483719.jpg
кто-то сможет подправить? спасибо
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
10.08.2024, 14:33
Регулярки учи )))
Кликните здесь для просмотра всего текста
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,330
10.08.2024, 14:52  [ТС]
iSmokeJC, надо будет поискать в инете фото задницы и прикрепить в ответ .....
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
10.08.2024, 14:53
Давай!
0
10.08.2024, 17:25

Не по теме:


Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
надо будет поискать в инете фото
Андрюша, ты не можешь не знать, что ты человек с особенностями в обучении и восприятии информации... Как бы ты не злился на людей, ты обычным не станешь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.08.2024, 17:25
Помогаю со студенческими работами здесь

Не удается спарсить весь текст
Приветствую и благодарю всех, кто обратил внимание на этот пост В рамках самообучения пробую освоить парсинг, использую библиотеку...

Как спарсить значения с таблицы сайта?
Всех приветствую, любители python! Начал писать парсер на Python и столкнулся с проблемой. ИЗ библиотек использую requests,...

Как спарсить эти значения и записать в переменные?
Добрый день, подскажите пожалуйста как спарсить эти значения и записать в переменные. Значения я беру с сайта: Аудит (Фото того что...

Спарсить csv файл где находится таблица с именами учеников
Добрый день читатели Cyberforum. Обращаюсь за помощью к более опытным ребятам, которые хорошо знают питон, сейчас потихоньку учу этот язык...

Спарсить данные с сайта
Есть сайт http://www.topix.com/city со списком штатов США. Нужно зайти на каждый штат и спарсить города, а потом сохранить в формате...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru