Python爬取网站图片并保存的实现示例
作者:筷子夹豆腐. 时间:2023-06-05 18:01:29
先看看结果吧,去bilibili上拿到的图片=-=
第一步,导入模块
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()) # 最后调用我们写的两个函数就行啦,
查看结果
来源: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