几天来,我一直在尝试解决此问题,似乎无法弄清楚如何正确完成它。最初在将条目打印到csv时遇到问题,但是由于SO可以很快解决。
问题是当我将xpath条目打印到csv时,格式变得很奇怪,因此在将其导入Excel或Web时会出现很多格式问题。 CSV的打印格式在打开或预览时如下所示:
['something'] ['something\nblabla'] ['som&asddng\n2blas']
我故意使用writerow(entries)
,因为我希望列表位于一行中,而每个条目都作为一列。我尝试使用:
-
writerows(zip(entries)
,但是CSV的格式相同。 -
writerows(entries)
为我为每个条目提供了正确的格式,但显然将每个条目写为新行。 - 使用
re
,但这仅在将多行附加到csv文件时(即,在多页的for循环中使用代码时)破坏格式。
因此,我有两个问题:
1。为什么会发生这种格式? 2。
我使用了以下代码:
import csv
def get_elements_by_xpath(driver,xpath):
return [entry.text for entry in driver.find_elements_by_xpath(xpath)]
File = open('list.csv','w')
writer = csv.writer(File)
facts = [("//div[@class='left-col']/h6[2]"),("//div[@class='left-col']"),("//div[@class='left-col']/h6[1]"),("//div[@class='left-col']/strong[1]"),("//div[@class='left-col']/strong[2]"),("//div[@class='left-col']//a[@rel='nofollow']")]
entries = []
for xpath in facts:
entries.append(get_elements_by_xpath(driver,xpath))
print(entries)
writer.writerow(entries)
File.close()