ペンネーム
この演習では、完成すると DataCamp のコースディレクトリを短縮したページから著者名を取得するスパイダー・クラスを用意しています。短縮版のURLは変数 url_short に保存されています。あなたの役割は、スパイダーの parse メソッド内で、著者名を抽出してリストにすることです。
知っておくべき点は2つあります。
- ここでは
responseオブジェクトとcssメソッドを使用します。 - コースの著者名は、クラス
course-block__author-nameに属する段落p要素内のテキストとして定義されています。
用意した関数 inspect_spider() を使ってスパイダーを確認できます。見つけた著者名を出力します!
この章の本演習および以降の演習は、読み込みに少し時間がかかる場合があります。
この演習はコースの一部です
Pythonで学ぶWebスクレイピング
演習の手順
start_requestsメソッドで呼び出されたときに正しく動作するよう、parseメソッドに必要な引数を補ってください。parseメソッド内で、クラスcourse-block__author-nameに属する段落要素からテキストを抽出して作成した文字列のリストauthor_namesを作成してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the scrapy library
import scrapy
# Create the Spider class
class DCspider( scrapy.Spider ):
name = 'dcspider'
# start_requests method
def start_requests( self ):
yield scrapy.Request( url = url_short, callback = self.parse )
# parse method
def parse( ____ ):
# Create an extracted list of course author names
____
# Here we will just return the list of Authors
return author_names
# Inspect the spider
inspect_spider( DCspider )