目次
今回やりたいこと
Qiitaの記事一覧をWebスクレイピングで取得する
プラグラムの流れ
1.URLを指定してレスポンス取得
- BeautifulSoupというライブラリを利用する
- 標準入力から検索キーワードを入力する
from bs4 import BeautifulSoup
import requests
# 検索キーワード
keyword = input('検索キーワード:')
# ベースのURL
base_url = 'https://qiita.com/search?q='
# https://qiita.com/search?q=キーワード という形になる
url = base_url + keyword
2.htmlをBeautifulSoupで解析
- Qiitaの記事タイトルをタグのclass名で取得
- elemsにはタイトルがリストで格納されている
html = requests.get(url)
soup = BeautifulSoup(html.content, "html.parser")
elems = soup.select(".searchResult_itemTitle")
3.結果を標準出力する
- for文で標準出力
for elem in elems:
print(elem.text)
最終的に
- 上記のコードでは1ページ目のみしか出力されない
- 複数ページから取得できるように若干のコード追加を行った
from bs4 import BeautifulSoup
import requests
# 検索キーワード
keyword = input('検索キーワード:')
# ベースのURL
base_url = 'https://qiita.com/search?q='
# https://qiita.com/search?q=キーワード という形になる
url = base_url + keyword
# 取得するページ数
page = 3
# ページごとに処理を行う
for page in range(page):
# タイトルの取得
html = requests.get(url + '&page=' + str(page + 1))
soup = BeautifulSoup(html.content, "html.parser")
elems = soup.select(".searchResult_itemTitle")
if not elems and page + 1 >= 2:
# 2ページ目以降でリストが空であれば処理終了
break
elif not elems:
# 1ページ目からリストが空であれば'検索結果なし'と出力し処理終了
print('検索結果なし')
break
print('\n【ページ' + str(page + 1) + '】')
for elem in elems:
print(elem.text)
結果
検索キーワード:スクレイピング
【ページ1】
[スクレイピング] Pythonスクレイピング
スクレイピング2 スクレイピングのやり方
スクレイピング1 Pythonによるスクレイピング
スクレイピングとは?Webスクレイピングを簡単に解説
スクレイピング
phpQueryでスクレイピング
seleniumでスクレイピング
スクレイピング事始め
Pythonでスクレイピング
Pythonでスクレイピング
【ページ2】
スクレイピングの活用事例をご紹介
Jsoupでスクレイピング
スクレイピングいろいろ
Twitter のスクレイピングについて
スクレイピング ❏Rails❏
【Railsでスクレイピング】Mechanize記事まとめ
なぜWebスクレイピングを学ぶのか?
puppeteerでスクレイピング
【個人開発】お笑いガシャ制作 | Ruby on Rails + Mechanize (スクレイピング )
スクレイピング事例4選 | スクレイピングの活用事例をご紹介
【ページ3】
Pythonのスクレイピング
スクレイピング事例4選 | スクレイピングの活用事例をご紹介
気象情報のスクレイピング【入門編】
スクレイピングの基礎
Pythonでスクレイピング
Webスクレイピングに関するよくある質問
Webスクレイピングに関する10のよくある誤解
【rails】スクレイピングの実装方法
PHPでスクレイピング
Webスクレイピング
プロセスは終了コード 0 で完了しました