Skip to content
Snippets Groups Projects

Web-Scraper

  • Clone with SSH
  • Clone with HTTPS
  • Embed
  • Share
    The snippet can be accessed without any authentication.
    Authored by vancouver299
    Edited
    ub5-DBS-Scraper 1.81 KiB
    # 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()
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment