Поиск строк и символов в Python из web страницы. Как реализовать?
Само задание взято отсюда: https://stepik.org/lesson/209719/step/2?unit=183222
Ссылка https://ru.wikipedia.org/wiki/Python содержит статью с Википедии про язык Python. В этой статье есть теги code, которыми выделяются конструкции на языке Python. Вам нужно найти все строки, содержащиеся между тегами <code> и </code> и найти те строки, которые встречаются чаще всего и вывести их в алфавитном порядке, разделяя пробелами.
Например, если исходный текст страницы выглядел бы так:
<code>a</code>
<a>bracadabr</a>
<code>c</code>
<code>b</code>
<code>b</code>
<code>c</code>
то в ответ надо было бы ввести строку "b c" Как я это решил:
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
С чем это может быть связано?
Ответы (1 шт):
a = re.findall((r'<code>[a-b]</code>'), str)
str - это такой тип данных в питоне, а вы пытаетесь в нём что-то найти как в переменной, поэтому и возникает ошибка:
TypeError: expected string or bytes-like object
Искать надо в скачанной вами страничке html. И искать надо произвольный текст между тегами, причём в "не жадном" режиме, и ещё нас интересует только этот текст, без самих тегов, итого строчка кода для поиска должна быть такая:
a = re.findall((r'<code>(.*?)</code>'), html)
Остальное решение не пишу, хоть что-то постарайтесь сделать сами.