2016-11-18 5 views
0

以下のコードは現在、私がウェブサイトから必要なものをすべて出力しています。しかし、私はそれを私が働くことができるCSVに変えようとするのは難しいことに直面しています。私はそれを実行したときにPython:WebスクレイプからCSVをエクスポートする

from selenium import webdriver 
import csv 

driver = webdriver.PhantomJS() 

#fetch top Amsterdam restaurants 
driver.get('http://www.eater.com/maps/best-amsterdam-restaurants') 

a=[] 
b=[] 
c=[] 

for elem in driver.find_elements_by_xpath('.//h2[span[@class = "c-mapstack__card-index"]]'): 
    restname = elem.text.encode('ascii', 'ignore') 
    a.append(restname) 

for address in driver.find_elements_by_class_name('c-mapstack__address'): 
    restaddress = address.text.encode('ascii', 'ignore').strip() 
    b.append(restaddress) 
for content in driver.find_elements_by_class_name('c-entry-content'): 
    restdescrip = content.text.encode('ascii', 'ignore').strip() 
    c.append(restdescrip) 

q=[(x,y) for x,y in zip(b, b[1:]) if '+31' in y] 


q.insert(21,'Raadhuisstraat Amsterdam, Netherlands') 
q.insert(25,'Leidsestraat 94 Amsterdam, North Holland 1017 PE, Netherlands') 
d=c[1:] 

new_dict= dict((a[i], (d[i],q[i])) for i in range(len(a))) 
with open('EaterPull-Amsterdam.csv', 'a') as fd: 
    writer = csv.writer(fd, 'excel') 
    writer.writerow(new_dict.iteritems()) 
#commented this out to write csv 
#for k, v in new_dict.iteritems(): 
    #print k, v 

は、私はこのエラーを取得する:私はこのように感じる

writer.writerow(new_dict.iteritems()) 
    _csv.Error: sequence expected 

は超簡単ですが、私はかなり何が起こっているのまわりで私の頭をラップすることはできません。

答えて

0

これで私の問題が解決しました。 kとvは、csvモジュールが望むシーケンスです。コードは次のようになります。

for k, v in new_dict.iteritems(): 
    print k, v 
    eater = [k,v] 
    with open('EaterPull-Amsterdam.csv', 'a') as fd: 
     writer = csv.writer(fd, delimiter=",") 
     writer.writerow(eater) 
関連する問題