WEBスクレイピング サンプル | Visualize the Invisible

Visualize the Invisible

株価の変動をデータとAIを使って分析、何が起きているかを「見える化」したい。

テストページを作成して、PythonによるWEBスクレイピングができたので
サンプルコードを紹介します。

<テストページ>
イメージ 2









<コード>
Jupyter NotebookWebScraping_test2 Last Checkpoint: a minute ago (autosaved) 
Python 3 
In [3]:

from bs4 import BeautifulStoneSoup
import requests
import pandas as pd
from pandas import Series, DataFrame
url = 'http://***/webscraping/test.html'
result = requests.get(url)
c = result.content
soup = BeautifulStoneSoup(c)
In [4]:

summary = soup.find("div", {'class':'list-land','id':'content'})
tables = summary.find_all('table')
In [5]:

# データを格納するためのリストです。
data = []
# テーブルから行をすべて探し出します。
rows = tables[0].find_all('tr')
# 行から、それぞれのcellを取り出して画面に表示しつつ、dataに格納します。
for tr in rows:
    cols = tr.find_all('td')
    # textを探し出します。
    for td in cols:
        text = td.find(text=True)
        text = text.replace('100> ','')
        print(text)
        data.append(text)   

column 1 
column 2 
column 3 
column 4 
column 5 
1-1 
1-2 
1-3 
1-4 
1-5 
2-1 
2-2 
2-3 
2-4 
2-5 

In [6]:

data[0]

Out[6]:
'column 1 '

In [18]:

clmn1 = []
clmn2 = []
clmn3 = []
clmn4 = []
clmn5 = []
i = 0
while i < 3:
    clmn1.append(data[0+i*5])
    clmn2.append(data[1+i*5])
    clmn3.append(data[2+i*5])
    clmn4.append(data[3+i*5])    
    clmn5.append(data[4+i*5])    
    i +=1
#date.append(data[0])
#date.append(data[5])
#date.append(data[10])
In [19]:

clmn1
Out[19]:
['column 1 ', '1-1 ', '2-1 ']
In [20]:

clmn2
Out[20]:
['column 2 ', '1-2 ', '2-2 ']
In [32]:

# まずはそれぞれをSeriesにします。
clmn1 = Series(clmn1)
clmn2 = Series(clmn2)
clmn3 = Series(clmn3)
clmn4 = Series(clmn4)
clmn5 = Series(clmn5)
# 連結してDataFrameにします。
test = pd.concat([clmn1, clmn2, clmn3, clmn4, clmn5], axis = 1)
# 列名を付けて置きましょう。
test.columns = ['col1','col2','col3','col4','col5']
In [33]:

test
Out[33]:
col1 col2 col3 col4 col5
0 column 1 column 2 column 3 column 4 column 5
1 1-1 1-2 1-3 1-4 1-5
2 2-1 2-2 2-3 2-4 2-5

<結果>

イメージ 1