BeautifulSoup入門 スクレイピング実践編 Pagenateに対応【python】
02 28, 2019
スクレイピングをしたい
Webサイトから情報をまとめてCSVでごにょごにょしたいなどにスクレイピングは便利です。
今回は、Pythonのスクレイピングによく使われるBeautifulSoupを使って勉強していきます。
BeautifulSoupには便利な機能がたくさんあります。
今回もcrieitさんからデータを抜いていきます。(制作者のdalaさんには了解済み)
今回の目標
今回の目標はcrieitの全タイトルと記事URLの取得とします。
ライブラリの導入
何はともあれライブラリを導入します。
from bs4 import BeautifulSoup
import requests
記事一覧ページの確認
crieitの記事一覧は、https://crieit.net/posts?page=1 という記載になっています。 つまり、=1の分割すれば良さそうです。
base_url = "https://crieit.net/posts?page="
num = 1
whileでループ処理
次にwhileでループ処理をします。
- ループが終わればnumに1を足す。
- 所得したtextの長さが0ならループを抜ける
これで動きそうです。
while num <= 100:
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
str(num)でnumを文字列に変換しています。 len(titles)は、titlesの長さを確認します。
完成したコード
from bs4 import BeautifulSoup
import requests
base_url = "https://crieit.net/posts?page="
num = 1
while num <= 100:
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:
print(title.text)