【发布时间】:2016-11-18 18:41:24
【问题描述】:
下面的代码当前打印了我想要从网站输出的所有内容;但是,我在尝试将其转换为我可以使用的 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
我觉得这非常简单,但我无法完全理解发生了什么。
【问题讨论】:
标签: python-2.7 csv selenium-webdriver web-scraping