Selectors での Response の扱い
ここで強調しておきたいのは、Selector と Response オブジェクトの関係です。xpath や css メソッドで要素を指定したとき、どちらのオブジェクトも SelectorList を返します。この演習では、そのことを確かめます。クラス course-block__link(ダブルアンダースコアに注意!)に属するすべてのハイパーリンク要素を見つけ、そのときに得られるオブジェクトを確認しましょう。
クラスで要素を探すには、ピリオド(.)を使うことを思い出してください。たとえば、div.class-2 は class-2 に属するすべての div 要素を選択します。
同じ「秘密」のウェブサイトのコンテンツを使って、response という名前の Response オブジェクトと、sel という名前の Selector オブジェクトをあらかじめ読み込んであります。CSSロケーターを作成したら、response.css と selector.css の出力を比較して、実質的に同じであることを確認します!
この演習はコースの一部です
Pythonで学ぶWebスクレイピング
演習の手順
- 変数
css_locatorに、クラスcourse-block__linkに属するすべてのハイパーリンクa要素を指す CSSロケーター文字列を代入します。 - 変数
response_asに、responseのcssメソッドへcss_locator変数を渡したときの出力を代入します。 - 変数
sel_asに、selのcssメソッドへ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( "" )