chenxi188
import requests,bs4,os
#利用 requests 模块下载页面
url=\'http://xkcd.com\'
os.makedirs(\'xkcd\', exist_ok=True) #创建一个文件夹xkcd


while not url.endswith(\'#\'):
    res=requests.get(url)
    res.raise_for_status() #没有下载到则报错

    #利用 Beautiful Soup 找到页面中漫画图像的 URL
    soup=bs4.BeautifulSoup(res.text,"html.parser")
    sel=soup.select(\'#comic img\')
    if sel==[]:
        print(\'没有下载到图片哦!\')
    else:
        imgurl=\'http:\'+sel[0].get(\'src\')
        if imgurl.startswith(\'http://imgs.xkcd.com\'):
            print(\'Imgurl检查正常..\')
        else:
            imgurl=\'http://xkcd.com\'+sel[0].get(\'src\')
            
        #利用 iter_content()下载漫画图像,并保存到硬盘
        print(\'下载图片: %s...\' % (imgurl))
        res = requests.get(imgurl)
        res.raise_for_status()
        
        imgfile=open(os.path.join(\'xkcd\',os.path.basename(imgurl)),\'wb\')
        for chunk in res.iter_content(100000):
            imgfile.write(chunk)
        imgfile.close
        
    #找到前一张漫画的链接 URL,然后重复
    prevlink=soup.select(\'a[rel="prev"]\')[0]
    url=\'http://xkcd.com\'+prevlink.get(\'href\')
print(\'完成!\')

 

分类:

技术点:

相关文章: