这篇文章主要介绍“Python如何批量下载阴阳师网站壁纸”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何批量下载阴阳师网站壁纸”文章能帮助大家解决问题。

代码复制可直接使用,记得pip install下载requests和bs4

最终版本

#引入系统类库用于打开关闭文件importsys#使用文档解析类库frombs4importBeautifulSoup#使用网络请求类库importrequests#图片保存目录path='D:/阴阳师'#阴阳师壁纸网站html_doc="https://yys.163.com/media/picture.html"#请求requests_html_doc=requests.get(html_doc).text#正则匹配所有href地址regex=re.compile('.*?href="(.*?)2732x2048.jpg"rel="externalnofollow"')urls=regex.findall(requests_html_doc)#set集合可以防止下载的图片重复result=set()foriinurls:result.add(i)#计数器用于图片命名num=0#文件路径、操作模式、编码#r''#打开文件录入图片f=open(r'result.txt','w',encoding='utf-8')forainurls:try:image_data=requests.get(a).contentimage_name='{}.jpg'.format(num)#给每张图片命名save_path=path+'/'+image_name#图片的保存地址withopen(save_path,'wb')asf:f.write(image_data)print(image_name,'=======================>下载成功!!!')num=num+1#下一张图片名字序号加一except:pass#关闭文件录入f.close()print("扫描结果已写入到result.txt文件中")过程
借鉴代码

自己从0开始,没有头绪,而且对python掌握度不高,那先借鉴别人的代码开始,第一篇借鉴的代码如下

#引入系统类库importsys#使用文档解析类库frombs4importBeautifulSoup#使用网络请求类库importurllib.requestpath='D:/阴阳师'html_doc="https://yys.163.com/media/picture.html"#获取请求req=urllib.request.Request(html_doc)#打开页面webpage=urllib.request.urlopen(req)#读取页面内容html=webpage.read()#解析成文档对象soup=BeautifulSoup(html,'html.parser')#文档对象#非法URL1invalidLink1='#'#非法URL2invalidLink2='javascript:void(0)'#set集合可以防止下载的图片连接重复result=set()#计数器用于图片命名num=0#查找文档中所有a标签forkinsoup.find_all('a'):#print(k)#查找href标签link=k.get('href')#过滤没找到的if(linkisnotNone):#过滤非法链接iflink==invalidLink1:passeliflink==invalidLink2:passeliflink.find("javascript:")!=-1:passelse:result.add(link)forainresult:#文件路径、操作模式、编码#r''f=open(r'result.txt','w',encoding='utf-8')#image_data=urllib.request.get(url=a).contentimage_data=requests.get(url=a).contentimage_name='{}.jpg'.format(num)#给每张图片命名save_path=path+'/'+image_name#图片的保存地址withopen(save_path,'wb')asf:f.write(image_data)print(image_name,'=======================>下载成功!!!')num=num+1#下一张图片名字序号加一f.close()print("扫描结果已写入到result.txt文件中")思考urllib.request和requests

借鉴的代码中使用urllib.request来请求,刚开始学习看到的一些代码实例也常用urllib.request来发起请求,之后看到有的代码使用的是requests。对于我个人,主观感受requests更加便捷,少写了几行代码,于是便去查阅了解两者的区别。

BeautifulSoup

接触到了BeautifulSoup,并且在一些文章的评论中看到对BeautifulSoup的称赞,进入文档查阅了下用法,改变了我之前对python,获取文档中部分特征的元素节点的写法困难的印象。

Beautiful Soup 4 文档

优化处理

之所以要加正则匹配,因为一开始获取到的图片链接里有空字符串的现象,在下载图片的时候直接报错整个程序挂掉,而且这个借鉴代码中的invalidLink1和invalidLink2看起来属实不舒服。所以添加了正则从源头保证链接的有效性,并且在执行下载代码中,添加了try,except保证程序出错也不会挂掉。

关于“Python如何批量下载阴阳师网站壁纸”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。