質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.47%

  • Python

    8571questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • CSS

    5997questions

    CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

BeautifulSoupのcssセレクタを使ったスクレイピングについて

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 445

JoeJack

score 18

 グーグル画像のスクレイピングをしたいがcssセレクタの指定に躓く。

import requests
from requests.compat import urljoin
from bs4 import BeautifulSoup
from PIL import Image


url = "https://www.google.co.jp/search?q=%E5%BA%83%E7%80%AC%E3%81%99%E3%81%9A&rlz=1C1CHZL_jaJP719JP719&source=lnms&tbm=isch&sa=X&ved=0ahUKEwim2r2yqbPbAhWBGJQKHWjbAxkQ_AUICigB&biw=1745&bih=863#imgrc="
response = requests.get(url)
response.encoding = response.apparent_encoding
bs = BeautifulSoup(response.content, 'html.parser')
div_simple_rows = bs.select('.rg_bx rg_di rg_el ivg-i')
print(div_simple_rows)

 試したこと

サイト画面の「検証」を右クリックしてhtml内の欲しい画像のclass(rg_bx rg_di rg_el ivg-i)を指定。
select('.rg_bx')をselect('div.rg_bx')に変更。

親である "div class med" や "id search" なら('.med'), ('#search')の形式でスクレイピング出来る。

 知りたいこと

上記の画像の取得するためにcssセレクタの形式の直接的な取り方と、取れたり取れなかったりする場合の
対応の仕方、正確な指定をするためのやり方をお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

なんとか画像引っ張ることに成功しました。ほぼ一日がかりであまりの生産性の低さに
怯えています。

div_simple_rows = bs.select('a img')


たったこれでした・・・・

躓いた原因としてこの"a"タグの上にある"div rg_bx"に固執してしまったことです。
divから"a href" のリンク先が画像と認識して".rg_bx"などと指定していました。

ただ、"a img"が効くのだとすると"a href"でリンク先も取得できるはずなのですが
空のリストが返ってきて疑問は残っています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.47%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    BeautifulSoupを使ってスクレイピング

    前提・実現したいこと あるページ(イトーヨーカドー)から商品名と価格を取得するためのコードを書いていたところ、以下のエラーメッセージが発生しました。 発生している問題・エラ

  • 解決済

    python webスクレイピング

    <tr> <td class="td11">2590</td> <td class="td12">ダイドーグループホールディングス</td> <td class="td11">東証

  • 解決済

    pythonでのスクレイピング

     前提・実現したいこと python初心者です。 下記のサイトからチーム毎に各ゴールパターンのゴール数というデータを取得し、リストの形で保持したいと考えています。 http:/

  • 解決済

    このサイトのスクレイピングを教えてください。beautifusoup python

    http://race.netkeiba.com/?pid=payback_list&id=p2018050301 このサイトの勝馬の全レースの単勝人気をスクレイピングで取得したい

  • 解決済

    Python3でのWebスクレイピング

     BeautifulSoupを使用したWebスクレイピング Python3のBeautifulSoupを使用し、下記のサイトのWebスクレイピングに挑戦しています。 指定したcla

  • 解決済

    python3 / beautifulsoup / google検索結果スクレイピングにおける検索...

    google検索結果をスクレイピングするにあたり 検索ワードの組み合わせを以下のコードにある組合せ以外に数10通り使い結果を収集したいです 複数の検索ワードを読み込ませる部分のコー

  • 解決済

    python3 / beautifulsoup / 特定サイト内スクレイピング

    現在のコードで収集できるアドレス情報の他に「事業者名」「住所」「電話番号」「紹介文(◆で始まる文章)」もあわせて収集するようにしたく考えております ご教授頂けると幸いです http

  • 解決済

    python テーブル要素のスクレイピング

    https://snownet.jp/search/?prefarea=1 のゲレンデごとのコース数をスクレイピングしたいのですが、以下のようにしても上手くいきません。 imp

同じタグがついた質問を見る

  • Python

    8571questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • CSS

    5997questions

    CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。