Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

ブログの検索順位を調べる

ブログの検索順位を調べます。google検索の結果をスクレイピングしその中にこのブログ(Pythonでいろいろやってみる)が含まれているかを調べます。requestsで検索の実行および結果の取得を行い、beautifulsoup4で取得した結果(html)から必要な情報を取得し、urlにこのブログのドメイン(https://tat-pytone.hatenablog.com)が含まれているかどうかを調べます。
コードは【Webスクレイピング入門】Google検索の上位サイトを件数指定して表示する方法に掲載されているものを全面的に使わせていただきました。詳細な説明もあり大変参考になります。

関連記事

食べログ全国ランキングTOP20の星をジャンル別に比較する
Yahooニュース・アクセスランキングの見出しを取得し頻出単語を調べる

環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 5.6.0
  • Python 3.8.8
  • requests 2.26.0
  • beautifulsoup4 4.10.0
コード

【Webスクレイピング入門】Google検索の上位サイトを件数指定して表示する方法のコードに、検索結果のURLにブログのドメインが含まれている場合に★をつけるよう追加しました。
検索ワードとして'python 画像 アスキーアート'を使い、検索順位10位までを取得します。

import requests
from bs4 import BeautifulSoup

# Google検索するキーワードを設定
search_word = 'python 画像 アスキーアート'

# ブログのドメイン
domain = 'https://tat-pytone.hatenablog.com'

# 上位から何件までのサイトを抽出するか指定する
pages_num = 10 + 1

print(f'【検索ワード】{search_word}')

# Googleから検索結果ページを取得する
url = f'https://www.google.co.jp/search?hl=ja&num={pages_num}&q={search_word}'
request = requests.get(url)

# Googleのページ解析を行う
soup = BeautifulSoup(request.text, "html.parser")
search_site_list = soup.select('div.kCrYT > a')

# ページ解析と結果の出力
for rank, site in zip(range(1, pages_num), search_site_list):
    try:
        site_title = site.select('h3.zBAuLc')[0].text
    except IndexError:
        site_title = site.select('img')[0]['alt']
    site_url = site['href'].replace('/url?q=', '')
    # URLにブログのドメインが含まれていれば★をつける
    if domain in site_url:
        mark = '★'
    else:
        mark = ''
    # 結果を出力する
    print(mark + str(rank) + "位: " + site_title + ": " + site_url)
実行結果

4位にランクインしていることがわかります。

【検索ワード】python 画像 アスキーアート
1位: PythonとOpenCVで画像をアスキーアート化するプログラムを作った: https://qiita.com/Pavaux/items/450ac6823e86b092cfbb&sa=U&ved=2ahUKEwiTmIiwsYb1AhXDLH0KHaACCbkQFnoECAgQAg&usg=AOvVaw3g2l03bqQ4MJrIuiR7myZy
2位: Pythonで画像からアスキーアートを生成してみる - Qiita: https://qiita.com/yukid/items/a96a036564e1c93c3ae9&sa=U&ved=2ahUKEwiTmIiwsYb1AhXDLH0KHaACCbkQFnoECAcQAg&usg=AOvVaw3OjjduCvNyamrVdsbhHlkt
3位: PythonとOpenCVで画像をアスキーアート化してみる(トレースAA ...: https://nehori.com/nikki/2021/04/04/post-27881/&sa=U&ved=2ahUKEwiTmIiwsYb1AhXDLH0KHaACCbkQFnoECAoQAg&usg=AOvVaw34kw_TvSIdD2Pods6f7TKk
★4位: アスキーアートを自動生成する - Pythonでいろいろやってみる: https://tat-pytone.hatenablog.com/entry/2020/02/26/202205&sa=U&ved=2ahUKEwiTmIiwsYb1AhXDLH0KHaACCbkQFnoECAkQAg&usg=AOvVaw2NYFbKmDFrzHYfRwFFxSB8
5位: Pythonを使って画像をアスキーアートに変換するスクリプト: https://blog.tkrel.com/347&sa=U&ved=2ahUKEwiTmIiwsYb1AhXDLH0KHaACCbkQFnoECAsQAg&usg=AOvVaw2qoj9YtdKTyTrzxTviyjg6
6位: Pythonで鬼滅の刃の炭治郎を描きます。OpenCVで画像から ...: https://www.youtube.com/watch%3Fv%3DfSA_sT9LAqw&sa=U&ved=2ahUKEwiTmIiwsYb1AhXDLH0KHaACCbkQtwJ6BAgBEAE&usg=AOvVaw1HgRkvIAo_GdqHsSONjwkx
7位: 「python 画像 アスキーアート」の動画: https://www.youtube.com/watch%3Fv%3DfSA_sT9LAqw&sa=U&ved=2ahUKEwiTmIiwsYb1AhXDLH0KHaACCbkQuAJ6BAgBEAI&usg=AOvVaw3sOfP-SVV1xUFaai9Piqnj
8位: Python アスキーアートを作った - 渡邊直樹のブログ: https://naokiwatanabe.blogspot.com/2014/10/python.html&sa=U&ved=2ahUKEwiTmIiwsYb1AhXDLH0KHaACCbkQFnoECAMQAg&usg=AOvVaw14aEo95q0Z4MxCyjwrUBiD
9位: アスキーアートを自動生成する - Pythonでいろいろやってみる: https://itnews.org/news_resources/137856&sa=U&ved=2ahUKEwiTmIiwsYb1AhXDLH0KHaACCbkQFnoECAAQAg&usg=AOvVaw1io297U4DvgysvJsFODSYd
10位: 画像からAA(アスキーアート)を作る機能を作ってみたけど: https://tetorachaos.com/image-to-aa1&sa=U&ved=2ahUKEwiTmIiwsYb1AhXDLH0KHaACCbkQFnoECAUQAg&usg=AOvVaw3PPnlJj8CIbg3BH_bQYrYO

検索ワードを'python 画像 鮮やか'に変えて試します。

コード
import requests
from bs4 import BeautifulSoup

# Google検索するキーワードを設定
search_word = 'python 画像 鮮やか'

# ブログのドメイン
domain = 'https://tat-pytone.hatenablog.com'

# 上位から何件までのサイトを抽出するか指定する
pages_num = 10 + 1

print(f'【検索ワード】{search_word}')

# Googleから検索結果ページを取得する
url = f'https://www.google.co.jp/search?hl=ja&num={pages_num}&q={search_word}'
request = requests.get(url)

# Googleのページ解析を行う
soup = BeautifulSoup(request.text, "html.parser")
search_site_list = soup.select('div.kCrYT > a')

# ページ解析と結果の出力
for rank, site in zip(range(1, pages_num), search_site_list):
    try:
        site_title = site.select('h3.zBAuLc')[0].text
    except IndexError:
        site_title = site.select('img')[0]['alt']
    site_url = site['href'].replace('/url?q=', '')
    # URLにブログのドメインが含まれていれば★をつける
    if domain in site_url:
        mark = '★'
    else:
        mark = ''
    # 結果を出力する
    print(mark + str(rank) + "位: " + site_title + ": " + site_url)
実行結果

1位にランクされています。

【検索ワード】python 画像 鮮やか
★1位: 画像の彩度、明度を変える - Pythonでいろいろやってみる: https://tat-pytone.hatenablog.com/entry/2019/04/14/193237&sa=U&ved=2ahUKEwjqgL6FsYb1AhUzO30KHTcVAWAQFnoECAEQAg&usg=AOvVaw3oawQbLrbB4l442KB_z6AY
2位: 【Pillow】画像の鮮やかさ・コントラスト・明るさ・シャープネス調整: https://python-no-memo.blogspot.com/2020/04/pillow.html&sa=U&ved=2ahUKEwjqgL6FsYb1AhUzO30KHTcVAWAQFnoECAoQAg&usg=AOvVaw1hSHkEyW6Y_y5IoSmAxYiE
3位: 続・rawpyでPython現像 (彩度・シャープネス調整) | キャンプ工学: https://campkougaku.com/2020/01/16/rawpy-sat/&sa=U&ved=2ahUKEwjqgL6FsYb1AhUzO30KHTcVAWAQFnoECAsQAg&usg=AOvVaw1m6xsPngW30XJ727mzcRwV
4位: 【Python/OpenCV】赤・緑・青色の検出(HSV色空間) | 西住工房: https://algorithm.joho.info/programming/python/opencv-color-detection/&sa=U&ved=2ahUKEwjqgL6FsYb1AhUzO30KHTcVAWAQFnoECAkQAg&usg=AOvVaw1P4Dq9FymrbJWfmKsZAnxp
5位: [PDF] 画像処理1︓画像の記録形式: http://www.mi.u-tokyo.ac.jp/consortium2/pdf/ImageProcessing1%2520-%2520Python%2520Sample.pdf&sa=U&ved=2ahUKEwjqgL6FsYb1AhUzO30KHTcVAWAQFnoECAcQAg&usg=AOvVaw2M698bd-aF2QkkrA-UUjm7
6位: OpenCVでRGBとHSVのヒストグラムを取得する方法 - Qiita: https://qiita.com/tatsuya11bbs/items/ff4a07d73e14385b6922&sa=U&ved=2ahUKEwjqgL6FsYb1AhUzO30KHTcVAWAQFnoECAgQAg&usg=AOvVaw0eKBjGHSq8qkKzVK7GjApg
7位: 【Python+OpenCV】特定の色を検出するプログラム | CRAFT GoGo: https://craft-gogo.com/python-opencv-color-detection/&sa=U&ved=2ahUKEwjqgL6FsYb1AhUzO30KHTcVAWAQFnoECAAQAg&usg=AOvVaw1onPKKDHectoOqPMltO1RC
8位: 画像処理入門講座 : OpenCVとPythonで始める画像処理 | POSTD: https://postd.cc/image-processing-101/&sa=U&ved=2ahUKEwjqgL6FsYb1AhUzO30KHTcVAWAQFnoECAUQAg&usg=AOvVaw1_tiYfm6yhISDDZQ_Pv8HE
9位: OpenCV 入門 (10) - 色の抽出|npaka|note: https://note.com/npaka/n/nc6764b99dbe0&sa=U&ved=2ahUKEwjqgL6FsYb1AhUzO30KHTcVAWAQFnoECAIQAg&usg=AOvVaw2akInXVM8s11pqjNnpFGUt
10位: OpenCV 画像の色相、彩度、明度の変更【HSV】 | sciencompass: https://sciencompass.com/machine-learning/opencv_rgb_hsv_change&sa=U&ved=2ahUKEwjqgL6FsYb1AhUzO30KHTcVAWAQFnoECAQQAg&usg=AOvVaw3yKsvJ2DFfez4h2VsKjurf
以下のサイトを参考にさせていただきました

【Webスクレイピング入門】Google検索の上位サイトを件数指定して表示する方法

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村