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('完成!')