Ich beschloss, eine Lernaufzeichnung über Python zu führen, und begann mit Qitta. Da mein Job ein Nicht-IT-Unternehmen ist, ist Python wirklich ein Hobby ... Ich meine, ich lerne mit Interesse.
Im Moment arbeite ich an der Lebensmittelhygiene. Ich frage mich, ob ich etwas mit Python anfangen kann. Analysieren wir also die Daten zu Informationen zum Lebensmittelrückruf! Ich dachte.
Als ersten Schritt habe ich versucht, durch Scraping einen Datenrahmen mit Informationen zum Lebensmittelrückruf zu erstellen. Die Datenquelle ist eine Site namens Recall Plus.
food_recall_info.py
from bs4 import BeautifulSoup
import requests
import re
import csv
import time
import pandas as pd
def recalls(url):
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
recall_soup = soup.findAll("tr",{"class":{"return","info","apology"}})
campany_list = []
recall_list = []
action_list = []
recall_date = []
for j in range(len(recall_soup)):
#Firmennamen abrufen
campany_list.append(recall_soup[j].find("a", href=re.compile("/company/*")).get_text())
#Details abrufen
recall_list.append(recall_soup[j].find("a", {"style":"float:left"}).get_text())
#Wie soll man antworten
keyword = re.compile(r'Wiederherstellung|Wiederherstellung&Rückerstattung|Wiederherstellung&Rückerstattung/Austausch|Wiederherstellung&Austausch|Rückerstattung|Austausch|点検&Austausch|Beachten|Verstoß gegen das Preiskennzeichnungsgesetz|Entschuldigung|Rückerstattung/Austausch|Senden')
action_list.append(re.search(keyword, str(recall_soup[j])).group())
#Abgrenzungsdatum
recall_date.append(recall_soup[j].find("td", {"class":"day"}).get_text().replace("\n ","20"))
return campany_list,recall_list,action_list,recall_date
campany_lists = []
recall_lists = []
action_lists = []
recall_dates = []
for i in range(1,20):
resl = recalls("https://www.recall-plus.jp/category/1?page={}".format(i))
campany_lists.extend(resl[0])
recall_lists.extend(resl[1])
action_lists.extend(resl[2])
recall_dates.extend(resl[3])
recall_df = pd.DataFrame({'Name der Firma':campany_lists,'Details abrufen':recall_lists,'Korrespondenz':action_lists,'Abgrenzungsdatum':recall_dates})
Ausführungsergebnis
recall_df.head()
Firmenname Rückrufdetails Korrespondenzdatum
0 Kobe Bussan Business Supermarket Ich möchte einige Harzstücke in einige Produkte von Recovery 2020 einkleben/03/17
1 Marubun Marubun Inländische Sojabohnen verwendet Yose Tofu Verfallsdatum falsch beschriftet Sammlung 2020/03/17
2 Aeon Hitachi Omiya Geschäft...Allergen gegen gewürzte Tonteki mit Schweinelende(Milch)Fehlende Anzeige Entschuldigung 2020/03/18
3 Tsuruya Karuizawa Store Köstlicher Weißfisch Fly Allergen Milk Ingredient Display fehlt Recovery 2020/03/16
4 Hatanaka Koiya Hatanaka Koiya Koi Süß gekochtes Allergen "Weizen" Missing Display Recovery 2020/03/13
Anscheinend denke ich, dass es im Pandas-Datenrahmen gespeichert werden könnte.
Zuerst dachte ich darüber nach, die Liste jedes Mal in den Datenrahmen zu schreiben, aber ich gab auf, weil ich nicht wusste, wie ich das machen sollte. Zuerst habe ich eine Liste jeder Spalte erstellt und dann versucht, sie in Pandas zu integrieren.
Ich bin ein Amateur, also habe ich mich an eine Sache erinnert und zuerst mit append () einen Wert hinzugefügt. Es wurde jedoch im Listenformat hinzugefügt und konnte nicht erfolgreich in Pandas importiert werden.
Nach vielen Recherchen stellte ich fest, dass ich Extend () verwenden konnte, um nur die Werte in der Liste hinzuzufügen.
Ich habe eins gelernt.
Nachdem ich die Daten sicher erstellt habe, möchte ich die Daten analysieren. Was jetzt mit diesen Daten analysiert werden kann, ist (1) Prozentsatz der Sammlungen und Rückgaben bei Rückrufen ② Gibt es eine Zeit, in der Rückrufe wahrscheinlich sind?
Nicht wahr. Ich würde gerne verschiedene Dinge ausprobieren.