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