开始使用免费开始使用

爬虫时间

这是您第一次动手编写一个会在站点之间爬取的 spider(先从一个站点收集链接,再跟随这些链接去解析新的页面)。这个 spider 从简化版的 DataCamp 课程目录开始,在 parse 方法中提取课程链接;随后它会跟随这些链接,在 parse_descr 方法中从每个课程页面提取课程描述,并将这些描述加入列表 course_descrs。您的任务是补全代码,让这个 spider 按预期运行!

我们已创建函数 inspect_spider,如果您做对了,它会打印出您抓取到的其中一个课程描述!

本练习是课程的一部分

Python Web 爬取

查看课程

练习说明

  • 在下面两个解析方法中各填一个空,用合适的参数让 spider 能够从第一个解析方法正确跳转到第二个。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Import the scrapy library
import scrapy

# Create the Spider class
class DCdescr( scrapy.Spider ):
  name = 'dcdescr'
  # start_requests method
  def start_requests( self ):
    yield scrapy.Request( url = url_short, callback = self.parse )
  
  # First parse method
  def parse( self, response ):
    links = response.css( 'div.course-block > a::attr(href)' ).extract()
    # Follow each of the extracted links
    for link in links:
      yield ____
      
  # Second parsing method
  def parse_descr( ____ ):
    # Extract course description
    course_descr = response.css( 'p.course__description::text' ).extract_first()
    # For now, just yield the course description
    yield course_descr


# Inspect the spider
inspect_spider( DCdescr )
编辑并运行代码