小练习: 下载美图
切换视频源:

小练习: 下载美图

作者: 莫烦 编辑: 莫烦 发布于: 2017-12-30

学习资料:

学会爬虫, 关键在于练习, 见多识广, 见多了网页的构造, 才知道怎么爬. 今天我们就来一个小实战, 结合之前学习的 requests 访问下载功能, 还有 BeautifulSoup, 来下载一些国家地理杂志的美图.

3-3-1.png

找到图片位置

说白了, 每次的爬虫, 都是先分析一下这个网页要找的东西的位置, 然后怎么索引上这个位置, 最后用 python 找到它. 这次也是这个逻辑. 我们看看今天要爬的这个图片网址. 定位到最新图片的位置,

3-3-2.png

找到这张图片的所在位置, 对比这类型的图片, 找到一种手段来筛选这些图片. 发现他们都存在于 img_list 的这种 <ul> 中.

3-3-3.png

而图片地址都是在 <img> 中.

<img src="http://image.nationalgeographic.com.cn/2017/1228/20171228030617696.jpg">

现在我们有了思路, 先找带有 img_list 的这种 <ul>, 然后在 <ul> 里面找 <img>.

下载图片

有了思路, 现在我们就用 python 来下图吧. import BeautifulSoup 和 requests. 定义爬取的 url.

用 BeautifulSoup 找到带有 img_list 的这种 <ul>,

从 ul 中找到所有的 <img>, 然后提取 <img>src 属性, 里面的就是图片的网址啦. 接着, 就用之前在 requests 下载那节内容里提到的一段段下载.

我从下载好的照片中抽了一张出来, 哈哈, 是张河马.

3-3-4.png

如果你只是偶尔爬一爬网页, 学到目前为止, 你已经入门了, 但是如果你想要继续深入, 你开始对爬虫的效率担忧, 觉得自己爬得太慢, 想要大规模爬取网页, 那么接下来的内容就再适合你不过了. 接下来我们就会提到爬虫的提效方法. 而且现在我们爬取的都是静态网页 (莫烦python 就是静态网页), 如果你遇到 JavaScript 很多的动态加载网页 (淘宝等), 后面的 selenium 教程就很适合你.

相关教程


降低知识传递的门槛

莫烦经常从互联网上学习知识,开源分享的人是我学习的榜样。 他们的行为也改变了我对教育的态度: 降低知识传递的门槛免费 奉献我的所学正是受这种态度的影响。 【支持莫烦】 能让我感到认同,我也更有理由坚持下去。

我组建了微信群,欢迎大家加入,交流经验,提出问题,互相帮持。 扫码后,请一定备注"莫烦",否则我不会同意你的入群申请。

wechat

    网页爬虫