Подсчет ключевых слов в текстовом теле SE C Edgar 10-K с Python - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь разобрать текстовый раздел 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()
...