初歩的な質問で大変申し訳ございませんが、2時間調べても解決しなかったため、こちらにてお伺いさせて頂きます。
dataと出力すると
[{'km': '40,000','maker': 'Audi','price': '130000'}]
となるリストがあります。
それをデスクトップ上のCSVファイル(aaa)に保存しようとして
コードの最下部に
with open(r'C:\Users\Trey\Desktop\aaa.csv') as fp:
writer = csv.writer(f, lineterminator='\n')
writer.writerows(data)
と記載しましたが、その後ファイルを開いても白紙で何も保存されていません。
コードの最初にimport csvを記載しています。
考えられる原因は何かありますでしょうか?
ご教示お願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
先程の続きでしょうか。
各要素が辞書のリストを CSV に書き込むには DictWriter が便利です。
詳しくはリファレンスを参照してください。
python
1import csv 2import urllib 3 4from bs4 import BeautifulSoup 5 6url = 'https://dubai.dubizzle.com/motors/search/?page=1' # 取得先URL 7html = urllib.request.urlopen(url).read() 8soup = BeautifulSoup(html, 'html.parser') 9 10data = [] 11for item_elems in soup.select('div.list-item-wrapper'): 12 # 年代、走行距離 13 li_elems = item_elems.select('ul.features > li') 14 year = li_elems[0].text.replace('Year: ', '') # 年代 15 km = li_elems[1].text.replace('Kilometers: ', '') # 走行距離 16 # メーカー、種類 17 breads = item_elems.select('p.breadcrumbs')[0].text 18 breads = [s.replace('\u202a', '').strip() for s in breads.split('>')] # \u202a は消す 19 maker = breads[1] 20 car_type = breads[2] 21 # 値段 22 price_elem = item_elems.select('div.price')[0] 23 price = price_elem.text.replace(',', '').replace('AED', '').strip() # , と AED は消す 24 # リンク 25 a_elem = item_elems.select('h3 a')[0] 26 car_url = urllib.parse.urljoin(url, a_elem.get('href')) 27 title = a_elem.text.strip() 28 29 data.append({ 30 'year': year, 31 'km': km, 32 'maker': maker, 33 'type': car_type, 34 'price': price, 35 'title': title, 36 'url': car_url 37 }) 38 39 40with open('output.csv', 'w') as f: 41 # 列の出力順序を規定 42 fields = ['title', 'url', 'maker', 'type', 'year', 'km', 'price'] 43 44 writer = csv.DictWriter(f, fieldnames=fields, quoting=csv.QUOTE_NONNUMERIC) 45 writer.writeheader() # ヘッダー出力 46 writer.writerows(data) # データ出力
csv
1"title","url","maker","type","year","km","price" 2"Mercedes-Benz CL500 2003","https://dubai.dubizzle.com/motors/used-cars/mercedes-benz/c-class/2018/10/5/mercedes-benz-cl500-2003-2/?back=L21vdG9ycy9zZWFyY2gvP3BhZ2U9MQ%3D%3D&pos=1","Mercedes-Benz","C-Class","2003","200000","18000" 3"Nissan juke 2012 model 1.6L turbo AWD","https://dubai.dubizzle.com/motors/used-cars/nissan/juke/2018/10/5/ali-2/?back=L21vdG9ycy9zZWFyY2gvP3BhZ2U9MQ%3D%3D&pos=2","Nissan","Juke","2012","136000","27500" 4"AUDI S6 Quattro twin turbo","https://dubai.dubizzle.com/motors/used-cars/audi/rs6/2018/9/20/audi-s6-quattro-twin-turbo-2/?back=L21vdG9ycy9zZWFyY2gvP3BhZ2U9MQ%3D%3D&pos=3","Audi","S6/RS6","2014","64500","125000" 5"Bentley 51 series Flying Spur","https://dubai.dubizzle.com/motors/used-cars/bentley/continental/2018/10/7/bentley-51-series-flying-spur-2/?back=L21vdG9ycy9zZWFyY2gvP3BhZ2U9MQ%3D%3D&pos=4","Bentley","Continental","2012","49,000","230000" 6"G63 463 Edition AMG GCC specs UAE warranty VE...","https://dubai.dubizzle.com/motors/used-cars/mercedes-benz/g-class/2018/9/13/g63-amg-463-edition-gcc-specs-full-gargash-2/?back=L21vdG9ycy9zZWFyY2gvP3BhZ2U9MQ%3D%3D&pos=5","Mercedes-Benz","G-Class","2016","30000","369999" 7"fiat sport 500 model 2013 for sell","https://dubai.dubizzle.com/motors/used-cars/fiat/fiat-500/2018/10/8/fiat-sport-500-model-2013-for-sell-2/?back=L21vdG9ycy9zZWFyY2gvP3BhZ2U9MQ%3D%3D&pos=6","Fiat","Fiat-500","2013","65,000","24000" 8"2013 - Mitsubishi ASX -Price reduced!!!","https://dubai.dubizzle.com/motors/used-cars/mitsubishi/asx/2018/10/5/2013-mitsubishi-asx-2/?back=L21vdG9ycy9zZWFyY2gvP3BhZ2U9MQ%3D%3D&pos=7","Mitsubishi","ASX","2013","194000","35000" 9"Dodge Challenger 2014 GCC with lots of upgrad...","https://dubai.dubizzle.com/motors/used-cars/dodge/challenger/2018/10/8/dodge-challenger-2014-gcc-with-lots-of-upg-2/?back=L21vdG9ycy9zZWFyY2gvP3BhZ2U9MQ%3D%3D&pos=8","Dodge","Challenger","2014","90,000","49000" 10"Ford edge, lady driven, in excellent conditio...","https://dubai.dubizzle.com/motors/used-cars/ford/edge/2018/10/11/ford-edge-lady-driven-in-excellent-conditi-2/?back=L21vdG9ycy9zZWFyY2gvP3BhZ2U9MQ%3D%3D&pos=9","Ford","Edge","2008","240,000","15000" 11"NISAN SUNNY 2015 MODEL 1.5 cc gcc SPEC: 5010...","https://dubai.dubizzle.com/motors/used-cars/nissan/sunny/2018/10/7/nisan-sunny-2015-model-15-cc-gcc-spec-5010-2/?back=L21vdG9ycy9zZWFyY2gvP3BhZ2U9MQ%3D%3D&pos=10","Nissan","Sunny","2015","50,100","19500"
投稿2018/10/11 12:13
総合スコア21956
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/11 12:32
2018/10/11 12:38
2018/10/11 12:41
2018/10/11 12:46