Python爬取网站图片并保存的实现示例
先看看结果吧,去bilibili上拿到的图片=-=
第一步,导入模块
importrequests frombs4importBeautifulSoup
requests用来请求html页面,BeautifulSoup用来解析html
第二步,获取目标html页面
hd={'user-agent':'chrome/10'}#伪装自己是个(chrome)浏览器=-= defdownload_all_html(): try: url='https://www.bilibili.com/'#将要爬取网站的地址 request=requests.get(url,timeout=30,headers=hd)#获取改网站的信息 request.raise_for_status()#判断状态码是否为200,!=200显然爬取失败 request.encoding=request.apparent_encoding#设置编码格式 returnrequest.text#返回html页面 except: return''
第三步,分析网站html构造
1、显示网站html代码
2、找到图片位置
3、分析
第四步,直接上代码注释够详细=-=
defparse_single_html(html): soup=BeautifulSoup(html,'html.parser')#解析html,可以单独去了解一下他的使用 divs=soup.find_all('div',class_='card-pic')#获取满足条件的div,find_all(所有) fordivindivs:#瞒住条件的div有多个,我们单独获取 p=div.find('p')#有源代码可知,每个div下都有一个p标签,存储图片的title,获取p标签 ifp==None: continue title=p['title']#获取p标签中的title属性,用来做图片的名称 img=div.find('img')['src']#获取图片的地址 ifimg[0:6]!='https:':#根据源代码发现,有的地址缺少"https:"前缀 img='https:'+img#如果缺少,我们给他添上就行啦,都据情况而定 response=requests.get(img)#get方法得到图片地址(有的是post、put)基本是get withopen('./Img/{}.png'.format(title),'wb')asf:#创建用来保存图片的.png文件 f.write(response.content)#注意,'wb'中的b必不可少!! parse_single_html(download_all_html())#最后调用我们写的两个函数就行啦,
查看结果
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。