pandasでhtmlのtableをCSV出力
ほとんど備忘録みたいなもんです。
まず、日本語が文字化けするので、utf-8を指定。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#import BeautifulSoup as bs
実はimportはpandasだけでいい。
from bs4 import BeautifulSoup
import requests
import pandas as pd
この辺はBeautifulsoupの練習もかねて書いていたコード
tableだけを取得するなら不要。
#print(resource.text)tml_doc=resource.content
soup=BeautifulSoup(html_doc,'html.parser')
#print(soup.prettify())
この辺は第二ステップでタグを指定して取得しようとした名残。不要。
tags=soup.find_all("a")
for tag in tags:
a=1
#print(tag.string)
#df=pd.DataFrame()
#table=pd.read_html("http://kishibetsu.com/2019R/1269.html")
#table[0].head()
実は2行で取得できてしまう。僕はurlという変数に一回代入させているので三行。
取得したいtableがあるurl
read_htmlでtable要素を取得できる。神
table = pd.read_html(url, flavor='bs4',match="")
#df=pd.DataFrame(table)
#df.to_csv(r'C:\Users\kfukuda3\Desktop\Private\Python37\scryping\csv\watanabe.csv',encoding='utf_8_sig')
CSVに出力。table[0]みたいに[0]を書くのがコツ。こうしないと一つのセルにまとまって入ってしまう。