Я очень новичок в python. Я пытаюсь реализовать функцию, которая выводит количество уникальных слов внутри тегов абзаца, но после редактирования этого текста несколькими способами. Первый: извлечь весь текст, заключенный в теги абзаца, и преобразовать его в нижний регистр. Второй: убрать знаки препинания, для которых я использую str.translate(str.maketrans('','',string.punctuation))
Третий: разбить на слова на основе разделения пробелов. В-четвертых: выведите количество уникальных слов.
Вот мой код:
import urllib
def getLength(url):
r=urllib.request.urlopen(url).read()
soup = BeautifulSoup(r, 'html.parser')
links = soup.find_all('p')
k=[]
for p in links:
if not p.find('a'):
pText = p.get_text()
k=k.append(pText)
k=k.lower()
translator=str.translate(str.maketrans('','',string.punctuation))
k=k.translate(translator)
#missing code
getLength("https://en.wikipedia.org/wiki/Google")
Я попытался напечатать значения и обнаружил, что мои логики c неверны. Я не знаю, как это исправить и продолжить. Пожалуйста, помогите.
edit:
import urllib
def getLength(url):
r=urllib.request.urlopen(url).read()
soup = BeautifulSoup(r, 'html.parser')
links = soup.find_all('p')
for p in links:
pText = p.get_text()
pText=pText.lower()
transpText=pText.translate(pText.maketrans('','',string.punctuation))
print(transpText)
newdata=transpText.split()
length=len(newdata)
return length
getLength("https://en.wikipedia.org/wiki/Google")
Я получил это, но я не понял часть токенизации. И по какой-то причине я получаю 0 в качестве длины. Что я сделал не так или как это должно быть сделано.