Konvertieren Sie das PDF der Händlerliste von Go To Eat Hokkaido Campaign in CSV
Mit tabula, pdfbox und poppler verschwinden die Zeichen "Koshihan Kuma-gekochtes Shin-no-zuru".
Keine Treffer, auch wenn Sie in Dohoku nach "Kumako Ramen Higashi Asahikawa" suchen.
camelot und pdfplumber mit pdfminer werden in Form von "(cid: 1279)" exportiert, sodass Sie die PDF-Anzeige überprüfen und ersetzen können.
Erstellungssoftware ist "cubepdf", Schriftart ist Yu Gothic
import camelot
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
import pandas as pd
url = "https://gotoeat-hokkaido.jp/general/particStores/"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
}
r = requests.get(url, headers=headers)
r.raise_for_status()
soup = BeautifulSoup(r.content, "html.parser")
dfs = []
for li in soup.select("ul.cf > li > a"):
link = urljoin(url, li.get("href"))
area = li.get_text(strip=True)
tables = camelot.read_pdf(link, split_text=True, pages="all", strip_text="\n", )
for table in tables:
df_tmp = pd.DataFrame(table.data[1:], columns=table.data[0])
df_tmp.columns = df_tmp.columns.map(lambda s: "".join(s.split()))
df_tmp["Bereich"] = area
dfs.append(df_tmp)
df
df = pd.concat(dfs)
df = df.fillna("").applymap(
lambda s: s.replace("(cid:1279)", "Ja")
.replace("(cid:1535)", "Han")
.replace("(cid:1791)", "Bär")
.replace("(cid:2303)", "Gekocht")
.replace("(cid:2559)", "Neu")
.replace("(cid:2815)", "Laut")
.replace("(cid:3071)", "Kran")
)
#CJK-Manager/Ersetzte Kang Hee
tbl = str.maketrans(
"_ _ _ Wasser _ ⿌ ⿍ ⿎ ⿏ ⿐ ⿑ ⿑ ⿒ ⿓ ⿕ ⿕ 戶 黑",
"旡 亻 刂 㔾 兀 尣 尢 巳 幺 彑 忄 忄 旡 旡 Mutter 氵 氺 灬 丬 犭 罒 礻 罓 轒 耂 耂 Schwertkraft 凵 躠 儿 儿 儿 儿 儿 儿 夊 凵 冖 冫 power Schwertkraft 勹 匕 匚 卜 10 卜 卩 厂 厶 Yumiko 彡 彳 戈 戈 蔴 蔴 蔴 蔴 薤 薤 虤 虤 虤 虤 虤 虤 虤 虤 虤 虤 褤 Schwertkämpfer Steine, Löcher, Bambusreis, Fadendosen, Schwerter, Schwerter, Schwerter, Schwerter, Schwerter, Schwerter, Schwerter, Schwerter, Schwerter, Schwerter 鬲 酉 釆 鹵 辆 辆 隶 隹 隹 靹 韶 韭 蟭 蟭 鬲 鬲 鬲 鬲 鬲 鬲 鬲 鬲 鬲 鬲 鬲 鬲 鬲 鬲 鬲 鬲 Utsudo Schwarz",
)
df = df.applymap(lambda s: s.translate(tbl))
df.reset_index(drop=True, inplace=True)
df.index += 1
df.to_csv("gotoeat_hokkaido.csv", encoding="utf_8_sig")
Recommended Posts