Я пытаюсь разобрать текстовый раздел SE C Эдгарские тексты в Python 3, например: https://www.sec.gov/Archives/edgar/data/796343/0000796343-14-000004.txt
Моя цель - собрать количество вхождения в видимом текстовом теле 10-K операторов некоторых ключевых слов и сохранения их в словаре (т. е. меня не интересуют таблицы, экспонаты и т. д. c.).
Я очень новичок в Python и был бы признателен за любую помощь!
Это то, что я написал до сих пор, но здесь код не возвращает правильное количество вхождений и не захватывает основное тело текста, видимое для конечный пользователь.
import requests
from bs4 import BeautifulSoup
# this part I would like to change such that it only collects words visible to the normal user in the page (is that the body?)
def count_words(url, the_word):
r = requests.get(url, allow_redirects=False)
soup = BeautifulSoup(r.content, 'lxml')
words = soup.find(text=lambda text: text and the_word in text)
print(words)
print('*'*20)
return len(words)
def main():
url = 'https://www.sec.gov/Archives/edgar/data/796343/0000796343-14-000004.txt'
word_list = ['assets']
for word in word_list:
count = count_words(url, word)
print('\nUrl: {}\ncontains {} occurrences of word: {}'.format(url, count, word))
print('--'*20)
# this part I dont understand
if __name__ == '__main__':
main()