这期内容当中小编将会给大家带来有关使用Python怎么爬取网站图片并保存,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
第一步,导入模块
import requests
from bs4 import BeautifulSoup
requests用来请求html页面,BeautifulSoup用来解析html
第二步,获取目标html页面
hd = {'user-agent': 'chrome/10'} # 伪装自己是个(chrome)浏览器=-=
def download_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 # 设置编码格式
return request.text # 返回html页面
except:
return ''
第三步,分析网站html构造
1、显示网站html代码
2、找到图片位置
3、分析
第四步,直接上代码注释够详细=-=
def parse_single_html(html):
soup = BeautifulSoup(html, 'html.parser') # 解析html,可以单独去了解一下他的使用
divs = soup.find_all('div', class_='card-pic') # 获取满足条件的div,find_all(所有)
for div in divs: # 瞒住条件的div有多个,我们单独获取
p = div.find('p') # 有源代码可知,每个div下都有一个p标签,存储图片的title,获取p标签
if p == None:
continue
title = p['title'] # 获取p标签中的title属性,用来做图片的名称
img = div.find('img')['src'] # 获取图片的地址
if img[0:6] != 'https:': # 根据源代码发现,有的地址缺少"https:"前缀
img = 'https:' + img # 如果缺少,我们给他添上就行啦,都据情况而定
response = requests.get(img) # get方法得到图片地址(有的是post、put)基本是get
with open('./Img/{}.png'.format(title), 'wb') as f: # 创建用来保存图片的.png文件
f.write(response.content) # 注意,'wb'中的b 必不可少!!
parse_single_html(download_all_html()) # 最后调用我们写的两个函数就行啦,
上述就是小编为大家分享的使用Python怎么爬取网站图片并保存了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。