google Colaboratoryは、環境構築不要で色々できるのが魅力です。
スクレイピングで得たデータもPythonでごにょごにょしたい。そういう時はpandasを使うようです。
今回はスクレイピングデータから最初から任意の要素を抜き出します。
元となるデータはCrieitさんのタイトル一覧です。
from bs4 import BeautifulSoup
import requests
import pandas as pd
columns = ['title']
df = pd.DataFrame(columns=columns)
base_url = "https://crieit.net/posts?page="
num = 1
while num <= 1:
url=base_url+ str(num)
r = requests.get(url)
soup = BeautifulSoup(r.text)
titles =soup.select("h5 a")
if len(titles) == 0:
print("これ以上記事はありません")
break
num += 1
for title in titles:
se= pd.Series(title.text, columns)
df = df.append(se, ignore_index=True)
df
.head()を使うことで先頭から5つの要素を抜き出すことが可能です。
任意の数を表示させる場合はdf.head(10)などのように引数を渡します。
試しに6つまで取得するコードを書いています。
from bs4 import BeautifulSoup
import requests
import pandas as pd
columns = ['title']
df = pd.DataFrame(columns=columns)
base_url = "https://crieit.net/posts?page="
num = 1
while num <= 1:
url=base_url+ str(num)
r = requests.get(url)
soup = BeautifulSoup(r.text)
titles =soup.select("h5 a")
if len(titles) == 0:
print("これ以上記事はありません")
break
num += 1
for title in titles:
se= pd.Series(title.text, columns)
df = df.append(se, ignore_index=True)
df.head(6)
第1回 | pandas入門 google Colaboratoryでローカルファイルを読み込む方法 |
第2回 | pandas入門 .head()で先頭から要素を抜き出す |
第3回 | pandas入門 .tail()で末尾から要素を抜き出す |
第4回 | pandas入門 .shapeで列数と行数を調べる |
第5回 | pandas入門 .indexでインデックスを調べる |
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント