通过前两节课的学习,我们已经基本掌握了scrapy的数据抓取操作,从一个页面的简单抓取到深度抓取,再到翻页抓取。但是我们还有一个特殊情况,就是如何抓取动态网页?当我们之前学习请求模块时,我们借助Ajax请求动态加载的数据。后来我们学习了selenium,可以很容易的得到动态加载的网页。那么scrapy如何获得动态加载的内容呢?接下来我们以一个案例:抓取网易新闻数据为例,介绍如何抓取动态加载的内容。涉及的知识点有下载器中间件。
1.什么是下载器中间件?

这是中间件Scrapy的核心概念。使用中间件,我们可以在爬虫的请求发起前或请求返回后定制数据,从而开发出可以适应不同情况的爬虫。

2.爬网易新闻思路解释
目的:获取国内、国际、军事新闻板块中的所有新闻标题及相应的新闻内容。
1)如果我们想要得到想要的数据内容,需要先请求主页解析,得到列表页面的url。
2)然后,我们发起一个请求来解析列表页面的地址以获取详细信息。
3)最后通过第二步得到的详情的地址得到详情页面的内容。
4)难点:第一步,正常发送解析数据的请求。第二步,发现列表页的数据是动态加载的,所以我们不能用解析后的数据来获取详情页的url。因此,我们需要使用下载器中间件来获取动态加载的内容。
好了,通过上面的解释,我们也大致了解了完成这个任务所需的步骤。因为这个案例会比较复杂,涉及的知识点比较多,为了让大家更好的理解,接下来我们分几节课讲解。下节课将正式开始我们的案例。


