

スクレイピングを行う範囲を指定したいなと思っています。  
私が考えているのは、findなどを用いて部分的にlxmlを切り取ってから、それでまたスープを作るみたいなあやふやなビジョンしか今のところ考えつかずにいます。

[code]

    <div id="foo">
        <a href="*1">
            <img src="*1.jpg" class="bar"/>
        </a> 
        <a href="*2">
            <img src="*2.jpg" class="bar"/>
        </a> 
        <a href="*3">
            <img src="*3.jpg" class="bar"/>
        </a> 
    </div>
    
    <img src="*4.jpg" class="bar"/>
    
[/code]

HTMLの一部にこのようなレイヤーが存在するとして、そのレイヤーに含まれる画像（*1.jpg, *2.jpg, *3.jpg）のURLのみ取得したい。  
しかし、このときレイヤー外にもclassが”bar"に相当する画像もある。

どのような解決策を講じることが私に可能でしょうか？

なお、環境は  
Python 3.6.2  
スクレイピングには  
BeautifulSoup4を利用し、現状Seleniumなどの導入を控えたいと思っています。


CC BY-SA 4.0
2019-01-24T06:12:15.173
52280
2019-01-24T06:28:33.207
16877
question
python html web-scraping beautifulsoup
指定したレイヤーのみを範囲にスクレイピング


`#foo > .bar` というように、子セレクタを利用することで `foo`というidの小要素だけを指定して取得することができます。  
[子結合子 | MDN](https://developer.mozilla.org/ja/docs/Web/CSS/Child_combinator)


CC BY-SA 4.0
2019-01-24T06:28:33.207
52281
2019-01-24T06:28:33.207
29826
52280
answer