2017-07-03 13 views
0

私はpython 2.7でウェブサイトからデータをWeb-Scrapingしています。 しかし、私はExcelでフォーマットの問題を取得します: ウェブサイトには: "9/18"と私は "18.sept"をExcelで取得します。ExcelでWeb-Scrapingしたときの日付形式の問題?

これらの値を「9/18」形式で保持するにはどうすればよいですか?

ここに私のコード:

filename=r'output.csv' 
 

 
resultcsv=open(filename,"wb") 
 
output=csv.writer(resultcsv, delimiter=';',quotechar = '"', quoting=csv.QUOTE_NONNUMERIC, encoding='latin-1') 
 
    
 
f = open('0910000511.txt', 'r') 
 
x = f.read() 
 

 
soup = BeautifulSoup(x, 'lxml') 
 

 
datatable=[] 
 
for ctable in soup.find_all('table', "ctable")[:-1]: 
 
    for record in ctable.find_all('tr'): 
 
     temp_data = [] 
 
     for data in record.find_all('td'): 
 
      temp_data.append(data.text.encode('latin-1')) 
 
     datatable.append(temp_data) 
 

 

 
tab6col = soup.find('table', { "class" : "tab6col" }) 
 
datatable2=[] 
 
for record in tab6col.find_all('tr'): 
 
    temp_data2 = [] 
 
    for data in record.find_all('td'): 
 
     temp_data2.append(data.text.encode('latin-1')) 
 
    datatable.append(temp_data2) 
 

 
output.writerows(datatable) 
 

 
resultcsv.close()

+0

これは、書式設定の問題で、[編集] Excelを書く方法を示すためにあなたの質問です。 – stovfl

+0

Imは "import unicodecsv as csv"のみを使用しているので、これは問題ですか? このxlsxパッケージを正しく使用するにはどうすればよいですか? – tardos93

+0

テキストファイルのコピー、またはそれを生成した場所のURLを持つことをお勧めします。 –

答えて

1

質問
私はこの形式でこれらの値を保持することが可能であり、それを聞くと、手動で行うにはありません。

文字列が割り当てられフォーマットを持っていないので、NOホールドがあります。

は、あなたのデータフローを考えてみましょう:

scrap `Date string` 
-> csv.write `Date string` 
-> Excel imports from CSV `Date string` 

エクセルマジックDate stringを検出し、DATEを入力し、それを変換します。
ExcelタイプDATEのセルをすべてデフォルトの の日付形式で表示すると、DAY.SHORTMONTHNAMEになります。

あなたは2つのオプションがあります:

  1. 変更するには、手動で行うか、VBAスクリプトを使用することができますエクセル
    Date Formatを。

  2. xslx packageを使用してDate Cellsにご 日付フォーマット( "9/18")をASSINGあなた掻き取ったデータを書き込みます。
    注::このSO回答には、方法の説明がありませんNumberFormat
    SO Answer Solution using openpyxl
    SO Answer cell.number_format
    openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files

関連する問題