• 售前

  • 售后

热门帖子
入门百科

Python爬取网站图片并保存的实现示例

[复制链接]
涵宸霖 显示全部楼层 发表于 2021-10-25 20:20:19 |阅读模式 打印 上一主题 下一主题
先看看效果吧,去bilibili上拿到的图片=-=


第一步,导入模块
  1. import requests
  2. from bs4 import BeautifulSoup
复制代码
requests用来哀求html页面,BeautifulSoup用来剖析html
第二步,获取目的html页面
  1. hd = {'user-agent': 'chrome/10'} # 伪装自己是个(chrome)浏览器=-=
  2. def download_all_html():
  3.   try:
  4.     url = 'https://www.bilibili.com/' # 将要爬取网站的地址
  5.     request = requests.get(url, timeout=30, headers=hd) # 获取改网站的信息
  6.     request.raise_for_status() # 判断状态码是否为200,!=200显然爬取失败
  7.     request.encoding = request.apparent_encoding # 设置编码格式
  8.     return request.text # 返回html页面
  9.   except:
  10.     return ''
复制代码
第三步,分析网站html构造
1、表现网站html代码



2、找到图片位置



3、分析




第四步,直接上代码解释够详细=-=
  1. def parse_single_html(html):
  2.   soup = BeautifulSoup(html, 'html.parser') # 解析html,可以单独去了解一下他的使用
  3.   divs = soup.find_all('div', class_='card-pic') # 获取满足条件的div,find_all(所有)
  4.   for div in divs: # 瞒住条件的div有多个,我们单独获取
  5.     p = div.find('p') # 有源代码可知,每个div下都有一个p标签,存储图片的title,获取p标签
  6.     if p == None:
  7.       continue
  8.     title = p['title'] # 获取p标签中的title属性,用来做图片的名称
  9.     img = div.find('img')['src'] # 获取图片的地址
  10.     if img[0:6] != 'https:': # 根据源代码发现,有的地址缺少"https:"前缀
  11.       img = 'https:' + img # 如果缺少,我们给他添上就行啦,都据情况而定
  12.     response = requests.get(img) # get方法得到图片地址(有的是post、put)基本是get
  13.     with open('./Img/{}.png'.format(title), 'wb') as f: # 创建用来保存图片的.png文件
  14.       f.write(response.content) # 注意,'wb'中的b 必不可少!!
  15. parse_single_html(download_all_html()) # 最后调用我们写的两个函数就行啦,
复制代码

检察效果

到此这篇关于Python爬取网站图片并生存的实现示例的文章就介绍到这了,更多相干Python爬取图片生存内容请搜刮脚本之家以前的文章或继续欣赏下面的相干文章盼望各人以后多多支持脚本之家!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作