小练习: 下载美图
学习资料:
学会爬虫, 关键在于练习, 见多识广, 见多了网页的构造, 才知道怎么爬. 今天我们就来一个小实战, 结合之前学习的 requests 访问和 下载功能, 还有 BeautifulSoup, 来下载一些国家地理杂志的美图.
找到图片位置¶
说白了, 每次的爬虫, 都是先分析一下这个网页要找的东西的位置, 然后怎么索引上这个位置, 最后用 python 找到它. 这次也是这个逻辑. 我们看看今天要爬的这个图片网址. 定位到最新图片的位置,
找到这张图片的所在位置, 对比这类型的图片, 找到一种手段来筛选这些图片. 发现他们都存在于 img_list
的这种 <ul>
中.
而图片地址都是在 <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 下载那节内容里提到的一段段下载.
我从下载好的照片中抽了一张出来, 哈哈, 是张河马.
如果你只是偶尔爬一爬网页, 学到目前为止, 你已经入门了, 但是如果你想要继续深入, 你开始对爬虫的效率担忧, 觉得自己爬得太慢, 想要大规模爬取网页, 那么接下来的内容就再适合你不过了. 接下来我们就会提到爬虫的提效方法. 而且现在我们爬取的都是静态网页 (莫烦python 就是静态网页), 如果你遇到 JavaScript 很多的动态加载网页 (淘宝等), 后面的 selenium 教程就很适合你.
相关教程