Web-Scraper
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()
Please register or sign in to comment