J'ai données de beautifulsoup sous la forme de:python: excel: impression dans les colonnes puis lancez dans la ligne suivante
a
b
c
d
e
f
Je veux les obtenir dans Excel dans le format suivant:
a b c d e f g
h i j k l m n
o p q r s t u
etc...
quand je les imprime dans Excel.
Ceci est le code que j'ai actuellement:
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")
Merci d'avance pour votre aide.
Code MIS À JOUR:
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")
Enfin cela fonctionne:
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()
Le problème avec celui-ci est que son remplaçant les résultats précédents. Encore un peu plus de travail à faire. mais les progrès :)
Modifier votre question pour montrer les changements dans le code et ce que vous voyez le dans les cellules. –