Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
2 / 2 / 0
Регистрация: 14.05.2020
Сообщений: 61

Поиск строк и символов в Python из web страницы. Как реализовать?

08.07.2021, 21:31. Показов 7147. Ответов 10

Студворк — интернет-сервис помощи студентам
Само задание взято отсюда:https://stepik.org/lesson/2097... nit=183222
Ссылка https://ru.wikipedia.org/wiki/Python содержит статью с Википедии про язык Python. В этой статье есть теги code, которыми выделяются конструкции на языке Python. Вам нужно найти все строки, содержащиеся между тегами <code> и </code> и найти те строки, которые встречаются чаще всего и вывести их в алфавитном порядке, разделяя пробелами.

Например, если исходный текст страницы выглядел бы так:

Code
1
2
3
4
5
6
<code>a</code>
<a>bracadabr</a>
<code>c</code>
<code>b</code>
<code>b</code>
<code>c</code>
то в ответ надо было бы ввести строку "b c".

Как я это решил:
Python
1
2
3
4
5
6
7
import re
from urllib.request import urlopen
 
html = urlopen ("https://ru.wikipedia.org/wiki/Python").read().decode("utf-8")
m = ['a-z']
a = re.findall((r'<code>[a-b]</code>'), str)
print(a)
Всё бы хорошо, та ошибку выдает: expected string or bytes-like object

С чем это может быть связано?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.07.2021, 21:31
Ответы с готовыми решениями:

Поиск строк с нужным словом в файле .csv и перезапись этих строк в новый файл Python
Добрый день. Господа программисты, нужна Ваша помощь. Возникла необходимость написать программный код на языке Python, но я 2 года...

Python flask web поиск с обращением в бд mysql
добрый день! существует такой вопрос, как на питоне фласке сделать веб интерфейс поиска, который будет обращаться в бд(желательно flask...

Поиск нужного значения парсером web-страницы
Подскажите пожалуйста, можно ли написать парсер одной странички который будет искать только версию базы данных(в данном случае...

10
 Аватар для avdivo
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
08.07.2021, 23:10
Лео236,
Что такое str?
0
2 / 2 / 0
Регистрация: 14.05.2020
Сообщений: 61
09.07.2021, 01:28  [ТС]
str - оператор строки
0
 Аватар для avdivo
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
09.07.2021, 01:46
Ну так и что он там делает? Разве ваша строка не html?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
09.07.2021, 07:47
Цитата Сообщение от Лео236 Посмотреть сообщение
m = ['a-z']
Это что?
Цитата Сообщение от Лео236 Посмотреть сообщение
str - оператор строки
Т.е. догадки не хватило туда подать строку, в которой собсно и должен происходить поиск?
Python
1
2
3
html = urlopen("https://ru.wikipedia.org/wiki/Python").read().decode("utf-8")
a = re.findall(r'<code>(.+?)</code>', html)
print(a)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
09.07.2021, 07:54
Лео236, садись, два. Это а степике так учат? Вообще то тут не регулярки нужны а БьютифулСуп которому вас "обучают".
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
09.07.2021, 08:15
Welemir1, правильно подметил дядюшка Welemir1, bs4 - отличный вариант для решения проблемы. Однако под него ещё надо будет requests. Можно и через регулярки, но это более сложный процесс.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
09.07.2021, 08:18
Damenikx, requests как раз не обязательно, возможно их на этом курсе сначала учат через урлопен страницы получать, это тоже норм. Но судя по курсу, тут регулярки не предусмотрены, их же учат парсить хтмл.
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
09.07.2021, 08:20
С bs4 это выглядит примерно так (могу ошибиться по памяти писал):
Python
1
2
3
4
5
6
7
8
9
from bs4 import BeautifulSoup
import requests
 
url = 'https://ru.wikipedia.org/wiki/Python'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
quotes = soup.find_all('code')
 
print(quotes)
И да, если будете использоваться докачайте библиотеку lxml

Добавлено через 1 минуту
Welemir1, действительно, не учёл.

Не по теме:

Скоро сюда будут падать темы по Scrapy. С вопросом: "это же фреймворк, а как его запустить?"

1
2 / 2 / 0
Регистрация: 14.05.2020
Сообщений: 61
09.07.2021, 08:50  [ТС]
Welemir1, Да, так учат, о BeautifulSoap вообще речи и не шло
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.07.2021, 12:50
Цитата Сообщение от Лео236 Посмотреть сообщение
str - оператор строки
Это функция-конструктор, а не оператор.
Цитата Сообщение от Лео236 Посмотреть сообщение
Да, так учат,
Жирная двойка вашим преподам.
Для разбора html нужно использовать html парсер. Для начала - хотя бы встроенный html.parser.
Попробуй учиться самостоятельно - по документации (все кто здесь отвечают на вопросы- учились самостоятельно. Забавно? Но факт. Кого учили - ничему, видимо, не научили).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.07.2021, 12:50
Помогаю со студенческими работами здесь

Реализовать два метода поиска строк в массиве: поиск перебором, бинарный поиск
Массив длины 15 заполнен строками, упорядоченными лексикографически без повторов: список зарегистрированных посетителей ...

Поиск символов и соединение строк
Здравствуйте! Вопрос такой! Есть label в который осуществляется запись с двух форм. Подскажите как определить последний символ находящийся...

Поиск символов в динамическом массиве строк
привет, мне нужно объяснение об поиском символом в динамичный строк массива. я буду дать этот пример: у меня есть н число элементов как я...

Придумать и реализовать алгоритм шифрования текста (использовать функции обработки символов и строк)
5)Придумать и реализовать алгоритм шифрования текста (использовать функции обработки символов и строк).

Реализовать класс Список (List) для хранения строк (максимальная длина строки – 20 символов).
начала изучать си++. классы. вот написала прогу, а там видать где-то ошибка, я её найти не могу...и программа не работает. если вас не...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 19.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru