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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

361閲覧

Python3でimgのリンクをスクロールしてコンソールに表示させたい

abab7200

総合スコア120

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/02/14 14:36

Python3を勉強中です。

指定URLのサイトへアクセスし、imgのリンク一覧をコンソールに表示させたいのですが、
設定が思い浮かずどなたかご教授いただければと存じます。

python

1# coding:utf-8 2 3import requests 4from bs4 import BeautifulSoup 5 6url = 'https://pixabay.com/ja/' 7headers = {'User-Agent':'Mozilla/5.0'} 8soup = BeautifulSoup(requests.get(url,headers=headers).content,'html.parser') 9 10member = [] 11 12for div in soup.find_all('div',class_='item'): 13 for img in div.find_all('img'): 14 print(img)

出力結果

<img alt="" src="https://cdn.pixabay.com/photo/2017/11/15/20/17/beach-2952391__340.jpg" srcset="https://cdn.pixabay.com/photo/2017/11/15/20/17/beach-2952391__340.jpg 1x, https://cdn.pixabay.com/photo/2017/11/15/20/17/beach-2952391__480.jpg 2x"/> <img alt="" src="https://cdn.pixabay.com/photo/2018/02/08/22/27/flower-3140492__340.jpg" srcset="https://cdn.pixabay.com/photo/2018/02/08/22/27/flower-3140492__340.jpg 1x, https://cdn.pixabay.com/photo/2018/02/08/22/27/flower-3140492__480.jpg 2x"/> <img alt="" src="https://cdn.pixabay.com/photo/2018/02/07/14/27/pension-3137209__340.jpg" srcset="https://cdn.pixabay.com/photo/2018/02/07/14/27/pension-3137209__340.jpg 1x, https://cdn.pixabay.com/photo/2018/02/07/14/27/pension-3137209__480.jpg 2x"/> <img alt="" src="https://cdn.pixabay.com/photo/2018/02/07/17/53/poppy-3137588__340.jpg" srcset="https://cdn.pixabay.com/photo/2018/02/07/17/53/poppy-3137588__340.jpg 1x, https://cdn.pixabay.com/photo/2018/02/07/17/53/poppy-3137588__480.jpg 2x"/>

■やりたい事
上記結果のsrc内のURLのみをコンソールに表示させたい。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

print(img)print(img.get("src"))

これでどうでしょうか?

for文のところをこうしたいという意味でしょうか?(というかこうすればいいと思います。)

python

1for img in soup.find_all('img'): 2 print(img.get('src'))

ちょっと発展的な書き方ですけど、jpgだけのURLが入ったリストが欲しければ、私ならこう書きます。(多分欲しいのはjpgだけですよね?押し付けな予想ですみません。)

python

1import re 2 3# ~~省略~~ 4 5srcs = [src for src in map(lambda img:img.get('src'),soup.find_all('img')) 6 if re.fullmatch(r'.+.jpg$',src) is not None]

投稿2018/02/14 14:54

編集2018/02/15 01:13
namnium1125

総合スコア2043

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

abab7200

2018/02/15 00:06

ありがとうございます。 対応できました! ご回答いただける範囲で問題ないのですがBeautifulSoup のfind_allでimgの要素を全取得してsrcを取得する内容はどのように記載すればよろしいでしょうか・・・・?
namnium1125

2018/02/15 01:00 編集

マークダウンで書きたかったので回答の方に追記しました。よろしくお願いします。m(_ _)m
abab7200

2018/02/15 01:15

失礼しました ご指摘の内容で理解できました。ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問