Python スクレイピングプログラム CSSセレクター

指定サイトの画像を自動で取得するアプリの開発をしていて気づいたこと、躓いたこと

・CSSセレクター

CSSセレクターで要素を取得すれば全部まとめて配列として返ってくるらしいができませんでした。1つの要素配列しか取得できないのです。

しかたなく全文から指定の文字列を検索して数えるようにした(リンク先ページ数を数える)ところ、21個のはずが22個になりました。

おかしいと思って元のhtmlソースを確認したら、最初だけxxx01みたいなものが2つあり、一番最初は目当てのセレクターではありませんでした。

しかし色々なサイトを見ても、bs4でのselectを用いての要素取得はできませんでした。

結局、要素取得によるページ数取得は諦めることにしました。

htmlのテキストデータから指定文字列を数えてリンク先ページをカウントすることにしました。それにより、ページ数のカウントはできました。

・次ページのリンク取得

これもできました。

・次ページからの画像URL取得

テキストデータから取得した文字列について、特定のパターンの文字列を削除することでできました。

ただ、文字列の取り扱いについて苦戦しました。

<img src=”https://xxx.com/image/1.jpg”

のようになっていて、最後のjpgが目印です。

最後のjpgが現れたら以降は取得しないとしたら、jpg以外の全ての文字列を取得するという動作が上手く記述できませんでした。

1文字だけなら、j以外とか指定できますが、jpgという3文字の文字列を指定はできません。

そのためあまり適切ではないのですが、< 以外ならOKとしました。

 

タイトルとURLをコピーしました