返回列表 上一主題 發帖

[原創] python上市櫃三大法人買賣超日報資料下載

回復 132# koshi0413


    今天我在Visual Studio 2015 編輯Python 也是遇到編碼問題,
在網路查到一個存檔時自動轉UTF8的VS套件,在其他軟體也有效,你看要不要試試
https://visualstudiogallery.msdn ... 1-89b7-d858407bd6e9

TOP

回復 132# koshi0413
你直接下載 Anaconda 3.5 安裝,不就迎刃而解了嗎?

TOP

回復 131# lpk187

唉~~還是不行,算了,感謝l大的資訊提供

另外有去查了一下,的確,win版在用開發上  都是卡在轉碼@@

TOP

本帖最後由 lpk187 於 2016-9-14 00:25 編輯

回復 131# koshi0413

嗯!我是用3.44的

   看了很多網路上的文章, python 並不適合在windows平台上開發 所以問題是會比較多一點,
尤其是下載套件問題多多,下載套件,很多都在出現在 C++上面
當你有下載問題時,你可以下載 Microsoft Visual C++ Compiler for Python 2.7試看看

TOP

回復 129# lpk187


    ---> 17 deta.to_csv('test1.csv')

都是卡在這串,不會又是版本問題吧!!!!  小弟 2.7  l大是3.x ?

不過剛才在資料夾有看到 test1.csv
內容為:?∠巨隞??        ?∠巨?迂        鞎琿€?鞈?        ?暸???        ?擗?        隞擗?        ??        鞎琿€?鞈?        ?曉??        ?擗?        隞擗?        ??        鞈鈭        閮餉?
也許是編碼問題?

發現到,好像小弟試你們的代碼問題較多,神奇

TOP

本帖最後由 lpk187 於 2016-9-13 22:52 編輯

回復 127# koshi0413

這問題,我也不明白耶!整個程代碼我不引用BeautifulSoup和io 一樣可以執行!

我只知道的原理是,剛鬥始以pandas讀入html(tbl=pd.read_html(res.text))資料,會使得html內容中的表格變成陣列其餘會忽略
以這網站範例,是讀到2個表格

既然是陣列資料,以陣列輸出為 表格 csv 或 xlsx
不然你把它改成 deta.to_excel('test1.xlsx') 看看,其說明文檔如:http://pandas.pydata.org/pandas-docs/version/0.18.1/io.html

TOP

回復 126# koshi0413
應該是版本的問題,2.7的print語法不太一樣。
試試看:
  1. for ta in soup.select('tr')[3:]:
  2.     for i in xrange(15):
  3.         print '%s' %ta.select('td')[i].text + '\t',
  4.     print '\n'
複製代碼

TOP

回復 122# lpk187

l大,小弟看錯了,是卡在這行,有缺套件?

UnicodeEncodeError                        Traceback (most recent call last)
<ipython-input-9-9847a49d90d1> in <module>()
     15 deta=tbl[1]
     16 deta.columns = ['股票代號','股票名稱','買進','賣出','現金償還','前日餘額','今日餘額','限額','買進','賣出','現券償還','前日餘額','今日餘額','限額','資券互抵','註記']
---> 17 deta.to_csv('test1.csv')

C:\Users\Koshi\Anaconda2\lib\site-packages\pandas\core\frame.pyc in to_csv(self, path_or_buf, sep, na_rep, float_format, columns, header, index, index_label, mode, encoding, compression, quoting, quotechar, _terminator, chunksize, tupleize_cols, date_format, doublequote, escapechar, decimal, **kwds)
   1342                                      doublequote=doublequote,
   1343                                      escapechar=escapechar, decimal=decimal)
-> 1344         formatter.save()
   1345
   1346         if path_or_buf is None:

TOP

回復 116# zyzzyva


    for ta in soup.select('tr')[3:10]:
    for i in xrange(15):
        print(ta.select("td").text, end='\t')
    print('\n')

非常感謝z大提供,但不知道是不是版本問題  加上 , end='\t'  這句就出錯,拿掉就ok @@
python2.7

TOP

回復 124# zyzzyva
多謝! 剛剛執行瞭一下鰻炫的,來研究研究!

TOP

        靜思自在 : 犯錯出懺悔心,才能清淨無煩惱。
返回列表 上一主題