Die Preise wie Roger und Whitebeards Vater wurden veröffentlicht, und ich habe mich gefragt, wie weit der Unterschied zwischen Ruffy, der den Piratenkönig anstrebt, und den großen Piraten ist. Deshalb habe ich beschlossen, ihn als Matplotlib-Praxis zu visualisieren. ..
・ Python 3.8.0 ・ Windows10 ・ Jupyter-Notizbuch
・ Studieren Sie den Logarithmus mit Drachenball-Kampfkraft und Matplotlib ・ [Neueste Version 2019] "One Piece" -Preisrang! Schließlich wird Rogers Kopfgeld entdeckt
Ich habe einen einteiligen Preis aus dem Artikel hier erhalten.
Der Kratzfluss ist wie folgt.
scraping_onepiece.py
import requests
from bs4 import BeautifulSoup
import pandas as pd
import re
import time
list_df = pd.DataFrame(columns=['Charakter', 'Gewinnspiel'])
url = 'https://ciatr.jp/topics/311415'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
#Holen Sie sich alle Charakter-Gewinnspiele
bounty_tags = soup.find_all('div', class_='component ArticleComponentHead')
bounty_tags = soup.find_all('h3')
#Im h3-Element enthalten['Arbeitsinformationen', 'Artikelinformationen', 'Über Ciatr']Ignorieren
bounty_tags = [tag.text for tag in bounty_tags if tag.text not in ['Arbeitsinformationen', 'Artikelinformationen', 'Über Ciatr']]
#Warten Sie 1 Sekunde
time.sleep(1)
#Holen Sie sich den Charakternamen
name_tags = soup.find_all('div', class_='component ArticleComponentHead scroll-margin')
name_tags = [tag.text for tag in name_tags if tag.text not in ['Ich möchte die Preismenge der mächtigen Spieler wissen, die in "ONE PIECE" erscheinen!',
'Es gibt immer noch große Namen mit unbekannten Preisen! Der maximale Betrag wird wahrscheinlich aktualisiert']]
# {Charaktername:Gewinnspiel}Erstellen Sie ein Wörterbuch
master_table = dict()
for bounty_tag, name_tag in zip(bounty_tags, name_tags):
#Entfernen Sie zusätzliche Zeichen mit regulären Ausdrücken
bounty = re.sub(r'[Gewinnspiel Original Beere oder mehr]', '', bounty_tag)
#Ausgeschlossen sind Charaktere, deren Preise 100 Millionen nicht überschreiten
if 'Milliarde' in bounty:
#Danach wird das Preisgeld in matplotlib verwendet. Konvertieren Sie es also in eine Ganzzahl.
oku_ind = bounty.find("Milliarde")
man_ind = bounty.find("Zehntausend")
oku = bounty[:oku_ind]
if bounty[oku_ind + 1:man_ind] != '':
man = bounty[oku_ind + 1:man_ind]
else:
man = 0
bounty = int(oku) * 100000000 + int(man) * 10000
name = re.sub(r'[【】0-9. Platz]', '', name_tag)
#Zum Wörterbuch hinzufügen
master_table[name] = bounty
for name, bounty in master_table.items():
tmp_se = pd.DataFrame([name, bounty], index=list_df.columns).T
list_df = list_df.append(tmp_se)
print(list_df)
#CSV speichern
list_df.to_csv('onepiece.csv', mode = 'a', encoding='cp932')
malplotlib_onepiece.ipynb
#Beschreibung, die beim Zeichnen eines Diagramms auf Jupyter Notebook angegeben werden soll
%matplotlib inline
python
import matplotlib.pyplot as plt
import pandas as pd
python
plt.rcParams["font.family"] = "IPAexGothic"
Der Schriftfehler ist [hier](https://datumstudio.jp/blog/matplotlib%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5 % AD% 97% E5% 8C% 96% E3% 81% 91% E3% 82% 92% E8% A7% A3% E6% B6% 88% E3% 81% 99% E3% 82% 8Fenster% E7% B7 Ich bezog mich auf% A8).
[Verstümmelte japanische Zeichen in matplotlib (Windows) auflösen](https://datumstudio.jp/blog/matplotlib%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA% 9E% E6% 96% 87% E5% AD% 97% E5% 8C% 96% E3% 81% 91% E3% 82% 92% E8% A7% A3% E6% B6% 88% E3% 81% 99% E3% 82% 8Fenster% E7% B7% A8)
python
df_file = pd.read_csv('onepiece.csv', encoding='cp932')
python
df_name = df_file['Charakter'].tolist()
df_bounty = df_file['Gewinnspiel'].tolist()
python
d = []
for name, bounty in zip(df_name, df_bounty):
data = [name, bounty]
d.append(data)
python
#Gewinnspiel in absteigender Reihenfolge
name = list(reversed([x[0] for x in d]))
bounty = list(reversed([x[1] for x in d]))
python
#Gesamtgröße der Figur
plt.figure(figsize=(12, len(d)/2))
#Horizontales Balkendiagramm
plt.barh(name, bounty)
#Der Titel des gesamten Diagramms
plt.title('Einteiliges Gewinnspiel-Ranking')
#x Etikettentitel
plt.xlabel('Gewinnspiel(Milliarde)')
#Stellen Sie die x-Achsen-Skala (Preisskala) ein
plt.xscale('log')
plt.show()
Wenn Sie versuchen, es zu visualisieren, ist die Stärke der vier Kaiser nicht ungerade. Ich freue mich immer noch auf die geheimen Preise von Dragon und Master Rayleigh. Meiner Meinung nach ist die Drachenprämie der Chef einer Organisation, die versucht, die Weltregierung direkt zu besiegen, daher würde ich gerne 5 Milliarden sehen.
Dieses Mal lernte ich Scraping und Malplotlib, um den einteiligen Milliarden-Dollar-Charakter zu visualisieren. Es war schwierig und zeitaufwändig, chinesische Zahlen in einer Zeichenkette durch Schaben in arithmetische Zahlen umzuwandeln. Das nächste Mal möchte ich Clustering und Emotionsanalyse von unbeaufsichtigtem Lernen lernen. Es ist lange her, aber danke, dass Sie so weit gelesen haben. Wenn Sie Fehler finden, wäre ich Ihnen sehr dankbar, wenn Sie in den Kommentaren darauf hinweisen könnten.
Recommended Posts