LoginSignup
2
5

More than 3 years have passed since last update.

サイト構成を手早く確認する為のTips

Last updated at Posted at 2019-10-05

概要

色々なサイトを見ているときに、
「ここは結局、何をどんな感じに提供してくれているサイトなの?」
と感じる時があります。

それを解消する、サイト構成を手早く確認する為のTipsです。

やったこと

大概のサイトには「サイトマップ」のページが公開されていて、
その殆どは、TOPページにリンクが設けられていると思います。

この「サイトマップ」を見れば、
そのサイトのことはだいたいわかるはずなので、
「サイトマップ」をGETして「BeautifulSoup」でaタグをかき集めてみます。

手順

以下の流れとなります。

  • (1) 対象サイトのサイトマップをGETする

  • (2) BeautifulSoupで対象ページのaタグを抜き出す

  • (3) aタグをリンク部とテキスト部に分けていく

  • (4) テキスト出力

実装

手短です。エラーケースとかはもう少し拡充した方がよいかも。

from bs4 import BeautifulSoup
import requests

urls = ''
path = './urls.txt'

# 対象サイトのサイトマップをGETする
r = requests.get("https://xxxxx..../sitemap")
c = r.content

# BeautifulSoupで対象ページのaタグを抜き出す
bs = BeautifulSoup(c, "html.parser")
a_list = bs.select("a")

# aタグをリンク部とテキスト部に分けていく
for a in a_list:
    name = a.get_text()
    link = a.get("href")
    urls += name + ':' + link
    urls += '\n'
    print(link, "\t", name)

# テキスト出力
with open(path, mode='w', encoding='UTF-8') as f:
    f.write(urls)

※ テキスト出力結果は、サイト構成によってマチマチですので割愛します。

まとめ

上記ソースコードでやっていることは、
「ブラウザでサイトマップを1回開いた後、エディタでソースを開いてaタグをかき集める」
という作業を自動化した、というものです。

GETリクエストを1回投げているだけですので、
よそ様のサーバに無用な負荷をかけるといったこともないはず。
使いどころはチョイチョイあるかなと感じています。

参考

PythonとBeautiful Soupでスクレイピング
https://qiita.com/itkr/items/513318a9b5b92bd56185

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5