我正在遍历csv链接,访问这些链接,然后尝试将这些链接中的信息写入新文件:
with open("hrefs.csv", "rb") as f:
reader = csv.reader(f)
for row in reader:
newUrl = row[0]
response = requests.get(newUrl)
newData = response.text
newSoup = BeautifulSoup(newData, 'lxml')
newstring = ''
titles = newSoup.findAll('span', {'id': 'titletextonly'})
prices = newSoup.findAll('span', {'class': 'price'})
newstring += titles[0].text + ',' + prices[0].text + ','
for ana in newSoup.findAll('p',{'class':'attrgroup'}):
for myb in ana.findAll('b'):
newstring += myb.text + ','
print newstring
listFile = open("output.csv", 'wb')
writer = csv.writer(listFile)
writer.writerow(newstring.encode('ascii', 'ignore').decode('ascii'))
我遇到了一些问题。 首先,我认为csv会意识到有逗号分隔的值并将每个属性放在一个新列中。 第二次,似乎每个列中都有一个字母。当我简单地print
每个newstring
时,它会给我一个连贯的字符串。
答案 0 :(得分:1)
您需要为writer.writerow
提供一系列字符串:
writer.writerow(newstring.split(","))
将是您目前所拥有的最简单的变化。