Ich möchte nur den Geschäftsnamen aus der Geschäftsnamenliste von goToEat extrahieren und an CSV ausgeben.
Beautifulsoup requests python3 windows10
Ich benutze.
Ich konnte den Geschäftsnamen einschließlich des Tags in Form einer Liste extrahieren, indem ich das HTML-Tag mit dem folgenden Code angab
urlName = "https://premium-gift.jp/eatosaka/use_store?events=page&id={}&store=&addr=&industry=".format(PageNumber)
dataHTML = requests.get(urlName)
soup = BeautifulSoup(dataHTML.content, "html.parser")
elems = soup.select('h3.store-card__title')
Ersetzen und löschen Sie zusätzliche Informationen und geben Sie sie in CSV aus. Mir wurde gesagt, dass i.text verwendet werden kann, um Textinformationen zu erhalten.
with open(r'C:\Users\daisuke\Desktop\python\eat.csv', 'w') as f:
writer = csv.writer(f)
for i in elems:
"""
i = str(i)
i = i.replace('<h3 class="store-card__title">', '')
i = i.replace('</h3>', '')
i = i.replace(' ', ' ')
i = i.replace(' ', ' ')
"""
print(i.text)
try:
writer.writerow([i.text])
except:
writer.writerow(['error'])
Der folgende Fehler tritt auf
Live Ise Ebi Küche Nakanogo Osaka Station Front Third Building Store
Traceback (most recent call last):
File "C:\Users\daisuke\Desktop\python\go_to_eat.py", line 24, in <module>
writer.writerow(i)
UnicodeEncodeError: 'cp932' codec can't encode character '\xa0' in position 20: illegal multibyte sequence
Aus diesem Grund haben wir den Unterbrechungsbereich durch einen Bereich mit halber Breite ersetzt, wie unten gezeigt. Es ist sozusagen nicht gut, weil es eine symptomatische Methode ist.
for i in elems:
i = str(i)
i = i.replace('<h3 class="store-card__title">', '')
i = i.replace('</h3>', '')
i = i.replace(' ', ' ')
i = i.replace(' ', ' ')
print(i)
try:
writer.writerow([i])
except:
writer.writerow(['error'])
Vielleicht ist es am besten, einen Zeichencode anzugeben, der das betreffende Zeichen richtig ausdrücken kann. Wenn Sie der Funktion open () das Schlüsselwortargument encoding wie unten gezeigt geben, können Sie den bei der automatischen Konvertierung verwendeten Zeichencode direkt angeben. Machen Sie ihn also zu UTF-8 usw., das Unicode-Zeichen ausdrücken kann. Das ist gut.
Die Zeichen werden beim Öffnen der CSV-Datei verstümmelt, aber es ist in Ordnung, wenn ich den Zeichencode ändere.
with open(r'C:\Users\daisuke\Desktop\python\eat.csv', 'w', encoding='utf-8') as f:
Beim Lesen aus CSV wurde jedoch eine unnötige leere Spalte hinzugefügt, wie unten gezeigt. ~~ Ich weiß immer noch nicht warum. ~~ Eine ausführliche Person hat es mir in den Kommentaren erzählt und es gelöst! Vielen Dank
['Wolfgang Steak House von Wolfgang Zwinner Osaka']
[]
['Weinberg']
[]
['Sumikuni Rotating Chicken Cuisine Lucua Store']
Recommended Posts