始める無料で始める

Selectors での Response の扱い

ここで強調しておきたいのは、SelectorResponse オブジェクトの関係です。xpathcss メソッドで要素を指定したとき、どちらのオブジェクトも SelectorList を返します。この演習では、そのことを確かめます。クラス course-block__link(ダブルアンダースコアに注意!)に属するすべてのハイパーリンク要素を見つけ、そのときに得られるオブジェクトを確認しましょう。

クラスで要素を探すには、ピリオド(.)を使うことを思い出してください。たとえば、div.class-2class-2 に属するすべての div 要素を選択します。

同じ「秘密」のウェブサイトのコンテンツを使って、response という名前の Response オブジェクトと、sel という名前の Selector オブジェクトをあらかじめ読み込んであります。CSSロケーターを作成したら、response.cssselector.css の出力を比較して、実質的に同じであることを確認します!

この演習はコースの一部です

Pythonで学ぶWebスクレイピング

コースを見る

演習の手順

  • 変数 css_locator に、クラス course-block__link に属するすべてのハイパーリンク a 要素を指す CSSロケーター文字列を代入します。
  • 変数 response_as に、responsecss メソッドへ css_locator 変数を渡したときの出力を代入します。
  • 変数 sel_as に、selcss メソッドへ css_locator 変数を渡したときの出力を代入します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create a CSS Locator string to the desired hyperlink elements
css_locator = ____

# Select the hyperlink elements from response and sel
response_as = ____
sel_as = ____

# Examine similarity
nr = len( response_as )
ns = len( sel_as )
for i in range( min(nr, ns, 2) ):
  print( "Element %d from response: %s" % (i+1, response_as[i]) )
  print( "Element %d from sel: %s" % (i+1, sel_as[i]) )
  print( "" )
コードを編集して実行