Även om jag inte prövat på den sida jag är intresserad av så verkar de som att den skapar hyfsat strukturerade tabeller. De är onekligen simpelt om man jämför med andra metoder med Selenium och Beautiful soup som jag också testa lite varstans med varierande framgång.
Men de ser ut som att de faktiskt kan funka. min kod ser ut så här:
import requests
import pandas as pd
from selenium import webdriver
from bs4 import BeautifulSoup
import csv
#url = 'https://pubs.rsc.org/en/content/articlelanding/2020/na/d0na00118j'
url = 'https://www.avanza.se/aktier/dagens-avslut.html/5444/midsona-b'
Även om jag inte prövat på den sida jag är intresserad av så verkar de som att den skapar hyfsat strukturerade tabeller. De är onekligen simpelt om man jämför med andra metoder med Selenium och Beautiful soup som jag också testa lite varstans med varierande framgång.
Men de ser ut som att de faktiskt kan funka. min kod ser ut så här:
import requests
import pandas as pd
from selenium import webdriver
from bs4 import BeautifulSoup
import csv
#url = 'https://pubs.rsc.org/en/content/articlelanding/2020/na/d0na00118j'
url = 'https://www.avanza.se/aktier/dagens-avslut.html/5444/midsona-b'
Som sagt ser de hyfsat strukturerat ut i terminalen men jag vill ha in de hela i ett Excel dokument
Jag fick in printade rubriker i en CSV fil i förra vecka men mins exakt hur jag gjorde. Jag vill minnas att de inte va mycket svårare än så här:
dfs.to_csv(C:\print.data\tabel)
De fungerar naturligtvis inte. Så jag undrar om nån vet hur man gör?
*angående rubriken jag antar att terminalen alltid är ett mellansteg.
dfs är inte en dataframe utan en lista av dataframes. det borde fungera med exempelvis dfs[0].to_csv('C:\print.data\tabel') för att skriva den första dataframen till en csv-fil. Förslagsvis loopar du igenom listan för att exportera alla till csv-filer. Om du nu vill använda Excel för att titta på innehållet i filerna sedan så kan metoden to_excel användas i stället för to_csv.
De ser rätt ok ut i csv filen. SÅ detta kan funka!
Men när försöker få in de i excell så stöter jag på detta:
Citat:
Traceback (most recent call last):
File "C:\Users\n\AppData\Local\Programs\Python\Python31 1\Lib\site-packages\pandas\io\excel\_base.py", line 1144, in __new__
engine = config.get_option(f"io.excel.{ext}.writer", silent=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^
File "C:\Users\n\AppData\Local\Programs\Python\Python31 1\Lib\site-packages\pandas\_config\config.py", line 263, in __call__
return self.__func__(*args, **kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\n\AppData\Local\Programs\Python\Python31 1\Lib\site-packages\pandas\_config\config.py", line 135, in _get_option
key = _get_single_key(pat, silent)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\n\AppData\Local\Programs\Python\Python31 1\Lib\site-packages\pandas\_config\config.py", line 121, in _get_single_key
raise OptionError(f"No such keys(s): {repr(pat)}")
pandas._config.config.OptionError: No such keys(s): 'io.excel..writer'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\test\SOUP.PY", line 33, in <module>
dfs[0].to_excel('C:\print\C')
File "C:\Users\n\AppData\Local\Programs\Python\Python31 1\Lib\site-packages\pandas\util\_decorators.py", line 211, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\n\AppData\Local\Programs\Python\Python31 1\Lib\site-packages\pandas\util\_decorators.py", line 211, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\n\AppData\Local\Programs\Python\Python31 1\Lib\site-packages\pandas\core\generic.py", line 2374, in to_excel
formatter.write(
File "C:\Users\n\AppData\Local\Programs\Python\Python31 1\Lib\site-packages\pandas\io\formats\excel.py", line 918, in write
writer = ExcelWriter( # type: ignore[abstract]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\n\AppData\Local\Programs\Python\Python31 1\Lib\site-packages\pandas\io\excel\_base.py", line 1148, in __new__
raise ValueError(f"No engine for filetype: '{ext}'") from err
ValueError: No engine for filetype: ''
Verkar rimligt att lägga till "import excel" i koden
Men kommer detta upp i terminalen:
C:\test>python SOUP.PY
Traceback (most recent call last):
File "C:\test\SOUP.PY", line 8, in <module>
import excel ModuleNotFoundError: No module named 'excel'
Det här funkar, men jag har en Mac så du får ändra "export_path".
Kod:
import pandas as pd
import os
def save_to_excel(df, export_path, file_name):
# skapa en mapp (för ditt Excel dokument) om den inte redan finns
if not os.path.exists(export_path):
os.makedirs(export_path)
# skapa ett Excel dokument
excel_writer = pd.ExcelWriter(
export_path + file_name + '.xlsx')
# lägg till ett Excel sheet
df.to_excel(excel_writer, file_name)
# spara dokumentet
excel_writer.save()
return
data = {'Name': ['Hasse', 'Jim', 'Erik'],
'Age': [25, 30, 35],
'City': ['Stockholm', 'Uppsala', 'Lund']}
df = pd.DataFrame(data)
save_to_excel(df, 'Min Excel mapp/', 'flashback')
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!