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

作者:筷子夹豆腐. 时间:2023-06-05 18:01:29 

先看看结果吧,去bilibili上拿到的图片=-=

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代码

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

2、找到图片位置

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

3、分析

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

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

第四步,直接上代码注释够详细=-=


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爬取网站图片并保存的实现示例

查看结果

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

来源:https://blog.csdn.net/weixin_46174854/article/details/113448838

标签:Python,爬取,保存
0
投稿

猜你喜欢

  • Django框架的中的setting.py文件说明详解

    2022-11-05 13:26:24
  • Python socket网络编程TCP/IP服务器与客户端通信

    2023-09-13 01:46:02
  • Python之Selenium自动化浏览器测试详解

    2022-08-19 00:04:55
  • python3爬虫中多线程的优势总结

    2023-05-15 02:41:07
  • 细数JavaScript 一个等号,两个等号,三个等号的区别

    2023-08-25 08:22:09
  • 如何用OleDbDataAdapter来对数据库进行操作?

    2010-06-12 12:56:00
  • Python字典高级用法深入分析讲解

    2022-10-31 06:43:20
  • Python多线程同步Lock、RLock、Semaphore、Event实例

    2023-08-03 20:47:15
  • 详解SqlServer数据库中Substring函数的用法

    2024-01-28 00:49:06
  • Python爬取视频时长场景实践示例

    2021-08-14 01:32:56
  • python标准库sys和OS的函数使用方法与实例详解

    2022-06-24 20:22:42
  • tensorflow实现KNN识别MNIST

    2021-08-10 06:41:50
  • SQL语句优化方法30例(推荐)

    2024-01-14 21:55:35
  • 浅谈Python中带_的变量或函数命名

    2023-08-30 15:44:08
  • python中copy()与deepcopy()的区别小结

    2022-02-22 19:39:14
  • javascript脚本控件topic

    2010-09-01 21:02:00
  • Python3.5实现的三级菜单功能示例

    2023-08-01 13:37:26
  • python实现list由于numpy array的转换

    2023-08-05 11:08:19
  • Python优化技巧之利用ctypes提高执行速度

    2022-01-26 09:13:04
  • Django如何实现防止XSS攻击

    2022-04-13 10:52:39
  • asp之家 网络编程 m.aspxhome.com