Laden Sie die PDF-Datei mit der letzten Frage von Basic Information Engineer Examination (FE) mit dem urllib-Paket von Python herunter.
Die bisherigen Fragen der Prüfung zum Basic Information Engineer werden auf der offiziellen IPA-Website (https://www.jitec.ipa.go.jp/1_04hanni_sukiru/_index_mondai.html) veröffentlicht. Fragen und Antworten werden jedoch jedes Jahr veröffentlicht, und Sie müssen auf die Seite jedes Jahres gehen und sie herunterladen. Verwenden Sie das urllib-Paket von Python, um Fragen und Antworten sofort herunterzuladen.
Wenn Sie sich beispielsweise die in den letzten Fragen veröffentlichten Seiten ansehen, lautet die URL für die Frühjahrsprüfung 2015 wie folgt.
Die Struktur der URL der letzten Frage ist
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_
Zusätzlich zu
[Westlicher Kalender] [Japanischer Kalender] _ [1 ODER 2] / [Westlicher Kalender] [Japanischer Kalender] [h ODER a] _fe_ [am ODER pm] _ [qs ODER ans ODER cmnt] .pdf
Man kann sehen, dass
Ich habe den Code mit vielen for-Anweisungen geschrieben, ohne zu viel nachzudenken.
kakomon.py
import urllib.request
def download():
#Gemeinsamer (erste Hälfte) Teil der URL
urlbase = "https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_"
#Frühling und Herbst
season = {1:"h", 2:"a"}
# 2009-Laden Sie das PDF 2019 herunter (Fragen / Antworten / Kommentare)
for y in range(2009,2020):
nendo = str(y) + "h" + str(y - 1988) #Beispiel: 2009h21
for s in range(1,3):
for t in ["am","pm"]:
if t == "pm": #Kommentar nur am Nachmittag
try:
url = urlbase + nendo + "_" + str(s) + "/" + nendo + season[s] + "_fe_" + t + "_cmnt.pdf"
filename = nendo + season[s] + "_fe_" + t + "_cmnt.pdf"
urllib.request.urlretrieve(url,"{0}".format(filename))
except urllib.error.HTTPError:
print("Error: " + filename) #Dateinamen anzeigen, die nicht heruntergeladen werden konnten
for qa in ["qs","ans"]:
try:
url = urlbase + nendo + "_" + str(s) + "/" + nendo + season[s] + "_fe_" + t + "_" + qa + ".pdf"
filename = nendo + season[s] + "_fe_" + t + "_" + qa + ".pdf"
urllib.request.urlretrieve(url,"{0}".format(filename))
except urllib.error.HTTPError:
print("Error: " + filename) #Dateinamen anzeigen, die nicht heruntergeladen werden konnten
if __name__ == "__main__":
download()
Wenn das oben Gesagte ausgeführt wird, wird die PDF-Datei abgerufen und die folgende Fehlermeldung angezeigt (Stand 30. Dezember 2019).
Error: 2011h23h_fe_am_qs.pdf
Error: 2011h23h_fe_am_ans.pdf
Error: 2011h23h_fe_pm_cmnt.pdf
Error: 2011h23h_fe_pm_qs.pdf
Error: 2011h23h_fe_pm_ans.pdf
Error: 2019h31a_fe_am_qs.pdf
Error: 2019h31a_fe_am_ans.pdf
Error: 2019h31a_fe_pm_cmnt.pdf
Error: 2019h31a_fe_pm_qs.pdf
Error: 2019h31a_fe_pm_ans.pdf
Dies ist auf die folgenden zwei Tatsachen zurückzuführen.
Es ist erforderlich, das obige Programm manuell herunterzuladen oder neu zu schreiben, um frühere Fragen des Jahres und der Zeit zu erhalten, in der ein Fehler aufgetreten ist, dh eine Programmausnahme. Zum Beispiel hat der Autor das folgende Programm verwendet.
kakomon_revised.py
import urllib.request
def download():
#Gemeinsamer (erste Hälfte) Teil der Sonderprüfung 2011 und URL der Herbstprüfung 2019 und gemeinsamer Teil des Dateinamens
urlbase = {"https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_1/2011h23tokubetsu_fe_":"2011h23tokubetsu_fe_",
"https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_2/2019r01a_fe_":"2019r01a_fe_"}
#Laden Sie das PDF (Fragen / Antworten / Kommentare) für die Sonderprüfung 2011 und die Herbstprüfung 2019 herunter
for u in urlbase:
for t in ["am","pm"]:
if t == "pm": #Kommentar nur am Nachmittag
try:
url = u + t + "_cmnt.pdf"
filename = urlbase[u] + t + "_cmnt.pdf"
urllib.request.urlretrieve(url,"{0}".format(filename))
except urllib.error.HTTPError:
print("Error: " + filename) #Dateinamen anzeigen, die nicht heruntergeladen werden konnten
for qa in ["qs","ans"]:
try:
url = u + t + "_" + qa + ".pdf"
filename = urlbase[u] + t + "_" + qa + ".pdf"
urllib.request.urlretrieve(url,"{0}".format(filename))
except urllib.error.HTTPError:
print("Error: " + filename) #Dateinamen anzeigen, die nicht heruntergeladen werden konnten
if __name__ == "__main__":
download()
Es gibt eine Änderung in der Nachmittagsprüfung ab dem 2. Jahr von Reiwa, und die Programmiersprache scheint [COBOL wird abgeschafft und Python hinzugefügt] zu sein (https://www.ipa.go.jp/about/press/20190124.html). Die Anzahl der Fragen, die Anzahl der Antworten, die zugewiesenen Punkte usw. ändern sich ebenfalls.
Recommended Posts