2017-10-20 143 views
0

我在的形式从beautifulsoup数据:蟒蛇:Excel中:打印在列然后开始下一行

a 
b 
c 
d 
e 
f 

我想他们在Excel的格式如下:

a b c d e f g 
h i j k l m n 
o p q r s t u 
etc... 

当我在Excel中打印它们。

这是代码我目前:

import openpyxl 
from openpyxl import Workbook 
import requests 
from bs4 import BeautifulSoup 
for i in range (1,2): 
    url ="https:...." 
    response=requests.get(url,verify=False) 
    soup=BeautifulSoup(response.text) 
    g_data=soup.find_all("td",{"class"}) 
    results=[] 
    for item in g_data: 
      data=(item.text) 
      results.append(data) 
      wb=Workbook() 
      ws=wb.active 
      for row, i in enumerate(results): 
         columns_cell='A' 
         ws[column_cell+str(row+2)]=str(i) 
      wb.save("test.xlsx") 

在此先感谢您的帮助。

更新的代码:

for i in range (1,3): 
url="https:.... .format(pagenum=i) 
response=requests.get(url) 
soup=BeautifulSoup(response.text) 
g_data=soup.find_all("td","class") 
row=[] 
wb=Workbook() 
ws=wb.active 
for idx, item in enumerate(g_data): 
    row.append(item.text) 
    if not idx % 7: 
     ws.append(row) 
     row=[] 
wb.save("test2.xlsx") 

UPDATED RESULTS PICTURE:

最后这个作品:

for i in range (1,2) 
url="https:... " 
response=requests.get(url) 
soup=BeautifulSoup(response.text) 
g_data=soup.find_all("td",{"class"}) 
results=[] 
for item in g_data: 
    results.append(item.text) 
df=pd.DataFrame(np.array(results).reshape(20,7),columns("abcdefg")) 
writer=pd.ExcelWriter('test4.xlsx', engine='xlsxwriter') 
df.to_excel(writer, sheet_name='Sheet1') 
writer.save() 

与这一个问题是,它的覆盖以前的结果。还有一些工作要做。但进展:)

回答

0

听起来像是你想要的东西有点像这样:

row = [] 
for idx, item in enumerate(g_data): 
    row.append(item.text) 
    if not idx % 6: # 7th element: 
     ws.append(row) 
     row = [] 
+0

编辑你的问题,以显示在代码中,你所看到的在细胞有什么变化。 –