最初にスクレイピングしたい html の一部を投稿させてください
<div id="hello">
<p>abc</p>
<center><img src="image_url"></center>
<p align="center" style="text-align: center;"><b>def</b></p>
<center><img src="image_url"></center>
<p align="center" style="text-align: center;"><b>def</b></p>
<p>abc</p>
<p align="center" style="text-align: center;"><b>def</b></p>
<center><img src="image_url"></center>
<p align="center" style="text-align: center;"><b>def</b></p>
<p>abc</p>
<center><img src="image_url"></center>
</div>
順番にある画像の p と src のテキストをスクレイピングしようとしていますimage_url
。p
問題は、上で示したhtmlは実際には静的center
ではなく、すべてのページが異なる構造を持っているということです。img src
p
とcenter
タグは各ページでランダムに構成されているため、すべてのタグを取得することを考えてp
いました。もしそうなら、それを追加してください。response.css('#hello p')
p
p
center
src
p.xpath('following-sibling::center[1]/img/@src').get()
p は反復中の各段落であるため、そのようなものを見つけました。
しかし、次の兄弟を見つけるだけでなく、その後すべての兄弟を調べてタグが一致するかどうかを確認するため、実際に4を取得するp
まで4つのタグがあるとしましょう。center
img src
p.xpath('following-sibling::center[1]/img/@src').get()
center
グーグルを試しましたが、次の兄弟がタグであるかどうかのみを確認することについて言及しているものはありません。データを順番に保存できるように、それを機能させることができると誰でも思いますか?
うまくいけば、私の説明は理にかなっています。
事前に助けと提案をありがとう