Код выхода 0, но нет вывода

#python #output #new-operator #exit #scrape

#python #вывод #new-operator #выход #очистить

Вопрос:

Я новичок в python и кодировании в целом. Я нашел код для очистки веб-сайта, но всякий раз, когда я запускаю этот код, все, что я получаю, это код выхода 0 (я знаю, что это хорошо, поскольку это означает, что ошибок нет), но я не получаю никакого вывода. Следуя коду, который я использую.

У кого-нибудь есть идеи, как это решить?

 from collections import Counter
import requests
from bs4 import BeautifulSoup


def my_start(url):
   my_wordlist = []
   my_source_code = requests.get(url).text
   my_soup = BeautifulSoup(my_source_code, 'html.parser')
   for each_text in my_soup.findAll('div', {'class':'entry-content'}):
      content = each_text.text
      words = content.lower().split()
      for each_word in words:
         my_wordlist.append(each_word)
      clean_wordlist(my_wordlist)
# Function removes any unwanted symbols
def clean_wordlist(wordlist):
   clean_list =[]
   for word in wordlist:
      symbols = '!@#$%^amp;*()_- ={[}]|;:"<>?/., '
      for i in range (0, len(symbols)):
         word = word.replace(symbols[i], '')
      if len(word) > 0:
         clean_list.append(word)
   create_dictionary(clean_list)
def create_dictionary(clean_list):
   word_count = {}
   for word in clean_list:
      if word in word_count:
         word_count[word]  = 1
      else:
         word_count[word] = 1
   c = Counter(word_count)
   # returns the most occurring elements
   top = c.most_common(10)
   print(top)
# Driver code
if __name__ == '__main__':
    my_start("https://www.tutorialspoint.com/python3/python_overview.htm/")
 

Комментарии:

1. Вы распечатываете самый последний шаг всего процесса. Вы пробовали печатать промежуточные данные, чтобы убедиться, что вы получаете ожидаемый результат в разных точках?

Ответ №1:

вы пытаетесь выполнить поиск класса entry-content , но кажется, что в вашем нет класса HTML , из которого вы получаете URL . Перейдите на URL эту страницу и просмотрите ее, найдите класс, который вы ищете, и обновите строку в строке ниже в вашем коде:

 for each_text in my_soup.findAll('div', {'class':'entry-content'}):
 

В вашем коде вы никогда не заходите в этот цикл for , а остальные функции не вызываются.

Комментарии:

1. Большое вам спасибо. Изменил его, и теперь он работает.

2. добро пожаловать. Можете ли вы принять это как ответ? вы можете увидеть тик записи.

Ответ №2:

Я запустил ваш код на своем компьютере. Весь цикл for (упомянутый ниже) не выполняется.

    for each_text in my_soup.findAll('div', {'class':'entry-content'}):
 

Это связано с тем, что на этой странице есть div ‘entry-content’, и, следовательно, остальные функции не вызываются. Код отлично работает для других веб-URL, когда я упомянул класс div, который есть в коде веб-сайта.

Попробуйте отладить свой код в следующий раз с помощью отладчика или с помощью инструкций print. Удачи!

Комментарии:

1. Спасибо. Изменил класс, и теперь он работает