0
私は、websiteから不動産業者の名前、役職、電話番号を掻き集めるスクリプトを書こうとしています。PythonとBeautifulSoupを使用したWebscrape - csvファイルに保存中のエラー
マイコード:
containers = page_soup.findAll("div",{"class":"card horizontal-split vcard"})
filename = "agents.csv"
f = open(filename, "w")
headers = "name, role, number\n"
f.write(headers)
for container in containers:
agent_name = container.findAll("li", {"class":"agent-name"})
if agent_name:
name = agent_name[0].text
agent_role = container.findAll("li", {"class":"agent-role"})
if agent_role:
role = agent_role[0].text
filterfn = lambda x: 'href' in x.attrs and x['href'].startswith("tel")
phones = list(map(lambda x: x.text,filter(filterfn,container.findAll("a"))))
print("name: " + name)
print("role: " + role)
print("phones:" + repr(phones))
f.write(name + "," +role + "," + phones.replace(",", "|") + "," + "\n")
f.close()
私のコードは、私がExcelで開くことができるCSVファイルに保存しようとする前に、端末内に働きました。しかし、今私は2つのエラーメッセージの受信しています: "|"
TypeError: must be str, not list
f.write(name + "," +role + "," + phones.replace(",", "|") + "," + "\n")
と
f.write(name + "," +role + "," + phones.replace(",", "|") + "," + "\n")
AttributeError: 'list' object has no attribute 'replace'
**注を、私は "" に置き換えています*
最も簡単な修正スーパーシンプルニシキヘビです天才 'str(yourVariable)'です。これはあなたが探している答えではなく、簡単な問題解決者です; – hansTheFranz
phonesはリストであり、リストにはreplaceメソッドがありません。 – slackmart