見出し画像

CSSセレクタでの検索

今日は、『つくってマスターPython』の第5章で学んだことのアウトプットです。

CSSセレクタで検索する

CSSセレクタは、スタイルシートでスタイルが適用される対象を指定するのに使われる書き方です。例えば、「ul li」とすれば、「<ul>タグ内の<li>タグ」を指定することができますし、「p.a」とすれば、「<a class=”a”>」といったタグが指定できます。

selectメソッド

CSSセレクタはBeautifulSoupでも利用できます。selectメソッドを使います。

<BeautifulSoup>>.select(  CSSセレクタ  )
引数に、CSSセレクタを使って検索対象を指定するテキストを用意します。これにより、CSSセレクタに合致する要素のTagインスタンスがリストにまとめられて返されます。

特定クラス内のリンクを集める

特定のリンク(入門記事へのリンク)を集めるスクリプトを作成してみます。<p class=”group_name”>タグ内にある<a>タグのコンテンツを集めて表示する、という処理を行います。

import requests
from bs4 import BeautifulSoup

address = 'https://www.tuyano.com/allgroups'
resp = requests.get(address)
data = resp.text

soup = BeautifulSoup(data, 'lxml')

for obj in soup.select('p.group_name a'):
   if obj.name != None:
       if obj.string != None:
           print(obj.string)
このWebページでは、入門記事へのリンクは以下のような形のタグとして用意されています。
<p class=”lead group_name”><a href=”/index2?id=xxx”>コンテンツ</a></p>
classに”group_name”が指定されている<p>タグがあり、その中に<a>タグでリンク先を用意しています。ここでの、soup.select(‘p.group_name a’)というメソッドで、この<a>タグのTagが集められていた、というわけです。

サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪