version 1.0
Denna Notebook
Larske tog fram en lista som en python snutt kollade igenom
Python kod som om länken skickar fel status <> 200 --> länkröta i Wikipedia och länkas skall bort
Förklaring Abbe98 på Bybrunnen som kan ge ledtråd vad som skall städas eller ej
import urllib3, json
import pandas as pd
nonWorkingfiles = "https://raw.githubusercontent.com/salgo60/open-data-examples/master/data/RA%C3%84files20200630.txt"
http = urllib3.PoolManager()
r1 = http.request('GET', nonWorkingfiles)
files = r1.data.decode('utf-8').split("\n")
print(len(files))
7602
df=pd.DataFrame(files,columns=["Line"])
df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 7602 entries, 0 to 7601 Data columns (total 1 columns): Line 7602 non-null object dtypes: object(1) memory usage: 59.5+ KB
pd.set_option("display.max.rows", None)
pd.set_option("display.max.columns", None)
dfsplit = df.Line.str.split("\t",n=0,expand = True)
dfsplit.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 7602 entries, 0 to 7601 Data columns (total 2 columns): 0 7602 non-null object 1 7602 non-null object dtypes: object(2) memory usage: 118.9+ KB
dfsplit.head()
0 | 1 | |
---|---|---|
0 | Status: 410 | http://kulturarvsdata.se/BHM/media/html/BM_UM... |
1 | Status: 410 | http://kulturarvsdata.se/BHM/media/html/BM_UM... |
2 | Status: 410 | http://kulturarvsdata.se/BHM/media/html/BM_UM... |
3 | Status: 410 | http://kulturarvsdata.se/BHM/media/html/BM_UM... |
4 | Status: 410 | http://kulturarvsdata.se/BHM/media/html/BM_UM... |
dfsplit[0].value_counts()
Status: 410 7479 Status: 404 122 Status: 400 1 Name: 0, dtype: int64
%matplotlib inline
import matplotlib.pyplot as plt
dfsplit[0].value_counts().plot.pie()
plt.show()
Enligt Bybrunnen Abbe98 finns det en logik i felen och tolkas enligt nedan
Normal tolkning
404: ”Den begärda resursen hittades inte.” Det vanligaste felmeddelandet av dem alla. Denna kod betyder att den begärda resursen inte existerar och att servern inte vet om den någonsin existerade.
410: ”Den begärda resursen är borta och kommer inte att komma tillbaka.” Liknande en 404 ”sidan finns inte” -kod, förutom att en 410 indikerar att tillståndet är förväntat och permanent.
dfStatus410Flag = dfsplit[0].str.strip() == "Status: 410"
dfStatus410 = dfsplit[dfStatus410Flag]
dfStatus410.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 7479 entries, 0 to 7599 Data columns (total 3 columns): 0 7479 non-null object 1 7479 non-null object 3 7479 non-null object dtypes: object(3) memory usage: 233.7+ KB
dfsplit[4].value_counts().plot.pie()
plt.show()
dfsplit[4].value_counts()[1:10].plot.pie()
plt.show()
dfsplit[4].value_counts()[2:].plot.pie()
plt.show()