2016-12-24 85 views
0

我试图从使用不同数字的列的url中的表中绘制数据。我创建了一个数字列表,然后在URL的末尾输入每个数字,从每个唯一链接中提取数据并将数据输入到列表中。然后我把这个列表写到一个excel文件中,但是当我这样做时,当我需要每行唯一链接需要一行时,数据被写入一行。使用python在excel中写入多行

import xlrd 
from bs4 import BeautifulSoup 
import requests 
import csv 
import urllib 

sheet = xlrd.open_workbook('/Users/stevenschwab/Downloads/2016 Preliminary Assessments.xlsx') 
sh = sheet.sheet_by_index(0) 
numbers = sh.col_values(0) 
data = [] 

for i in range(3,len(numbers)): 
    data.append(int(numbers[i])) 

for j in range(0,5): 
    print(data[j]) 


for key in data: 
    url = 'http://algonquin.northwoodsoft.com/display/PropertySearch.asp?cmd=DisplayDetails&ky= + key +' 
    response = requests.get(url) 
    html = response.content 
    soup = BeautifulSoup(html,"html5lib") 
    table = soup.find('center', attrs={'xmlns:dt':'urn:schemas-microsoft-com:datatypes'}) 
    rows = [] 

    for row in table.findAll('tr')[1:]: 
     cells = [] 

     for cell in row.findAll('td'): 
      cells.append(cell.text) 
    rows.append(cells) 

outfile = open('./property.csv', 'w') 
writer = csv.writer(outfile) 
writer.writerows([rows]) 
+0

您没有正确连接URL中的*键*。 – Parfait

回答

0

在循环的每次迭代中,您正在清除rows变量。将您的rows = []移到循环之外。