# imports from bs4 import BeautifulSoup import requests import csv # this function returns a soup page object def getPage(url): r = requests.get(url) data = r.text spobj = BeautifulSoup(data, "lxml") return spobj # scraper website: greyhound-data.com def main(): fobj = open('article-data.csv','w') # open file csvw = csv.writer(fobj) #create scv writer div_url = "https://www.heise.de/thema/https" #div mit class keywordliste wird gefunden content = getPage(div_url).find("div",{"class":"keywordliste"}) list = [] # eine leere Liste erzeugen divs = content.findAll("div") # alle "div"s werden gesucht for article in divs : # die Schleife geht durch alle divs # wenn ein div ein Attribut data-sourcechannel hat if article.has_attr ("data-sourcechannel"): #der Text vom header wird in die Liste hinzugefügt list.append(article.find("header").text.encode('utf-8').strip()) # erzeuge ein leeres Wörerbuch dict= {} # ['...','...','....'] for row in list: #jedes Element in der Liste wird gesplittet b= row.split() # Schleifer durch jedes Wort von dem String an der Stelle b der Liste for wort in b : if wort not in dict: #der Wert von dem Schlüssel wort wird zu 1 eingesetzt wenn er nicht im dict ist dict.update({wort:1}) else: #sonst wird er um 1 erhört dict[wort] +=1 #die Werte der Schlüssels im Wörterbuch wird absteigend sortiert sort_dict=sorted(dict.items(),key=lambda value:value[1], reverse=True) # die ersten drei Wörter mit dem höchsten Wert werden genommen und ausgedruckt print sort_dict[0] ,"\n", sort_dict[1], "\n",sort_dict[2] # main program if __name__ == '__main__': main()