刚看完urlretrieve函数,想要实战一下它的效果,于是找了国家地理杂志中国官网爬一下,网站http://www.nationalgeographic.com.cn/
开发环境是Python2.7&&Pycharm
图片的src是这样的:
我们用正则&&BeautifulSoup匹配它的标签img的src属性,得到了下面代码中的正则匹配,我在Pycharm中建立了photo文件夹,来存放下载的图片。
代码如下:
# encoding: utf-8
import urllib
from bs4 import BeautifulSoup
import re
def graph(url):
page = urllib.urlopen(url).read()
soup = BeautifulSoup(page, 'html.parser', from_encoding='utf-8')
result = soup.find_all('img', src=re.compile(r'http://image.nationalgeographic.com.cn/2017/08\d{2}/201708\d{11}.jpg'))
return result
if __name__ == '__main__':
url = 'http://www.nationalgeographic.com.cn/'
result = graph(url)
count = 0
for photo in result:
count = count+1
urllib.urlretrieve(photo['src'], 'photo/%s.jpg'%count)
print '下载完成总共%d张照片'%count
最后的效果:
美国8.21的大日食照片