第11章 下载xkcd的漫画

#! python3
# downloadXkcd.py - Downloads every single XKCD comic.
import requests, os, bs4

url = 'http://xkcd.com' # starting url下载图片的网址
os.makedirs('xkcd', exist_ok=True) # store comics in ./xkcd
while not url.endswith('#'):
    # Download the page.
    print('Downloading page %s...' % url)
    res = requests.get(url)#下载网页资源
    res.raise_for_status()
    soup = bs4.BeautifulSoup(res.text,"html.parser")#解析HTML
    # Find the URL of the comic image.
    comicElem = soup.select('#comic img')#找到img
    if comicElem == []:#如果img为空,则没有能下载的图片
        print('Could not find comic image.')
    else:
        comicUrl = 'http:'+comicElem[0].get('src')#否则就保存图片连接
        print("待下载的图片链接为:%s"%comicUrl)
        # Download the image.
        res = requests.get(comicUrl)#获取图片链接
        res.raise_for_status()
        # Save the image to ./xkcd
        imageFile = open(os.path.join('xkcd', os.path.basename(comicUrl)), 'wb')
        for chunk in res.iter_content(100000):
            imageFile.write(chunk)#保存图片到文件夹下
        imageFile.close()#关闭文件夹

    # Get the Prev button's url.
    prevLink = soup.select('a[rel="prev"]')[0]#前一张图片的按钮
    url = 'http://xkcd.com' + prevLink.get('href')#如果链接不是以#结束,则表明前面还有图片可以被下载
print('Done.')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值