Python爬取网站图片并保存的实现示例
作者:筷子夹豆腐. 发布时间:2023-06-05 18:01:29
标签:Python,爬取,保存
先看看结果吧,去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
0
投稿
猜你喜欢
- python selenium 获取接口数据。selenium没有直接提供查询的函数,但是可以通过webdriver提供的API查询,使用的
- 基本介绍环境: Python 3.5+, Pytorch 0.4.1/1.0.0安装:pip install pytorch-pretrai
- 1、获取元素 2、获取数据 3、绑定数据 4、隔行换色&
- 配置静态文件的两种方式:1 配置单独app下的静态文件,比如某个app下的单独的图片。2 配置整个project下的静态文件,适用于那些和单
- echarts legend点击事件首先,明确本篇文章的重点,主要有三个:1. 给legend添加点击事件2. 禁用legend点击事件的默
- 本文实例讲述了C#窗体读取EXCEL并存入SQL数据库的方法。分享给大家供大家参考。具体实现方法如下:windows窗体上放了一个Textb
- 项目中要对短文本进行相似度估计,word2vec是一个很火的工具。本文就word2vec的训练以及加载进行了总结。word2vec的原理就不
- 从大规模数据集中寻找物品间的隐含关系被称作关联分析或关联规则学习。过程分为两步:1.提取频繁项集。2.从频繁项集中抽取出关联规则。 频繁项集
- 一、简介time模块提供各种操作时间的函数说明:一般有两种表示时间的方式:第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒
- 本文主要讲解如何使用python绘制三维的柱形图,如下图源代码如下:import numpy as npimport matplotlib.
- commit 粒度commit message 在工程开发中有很重要的作用。一个好的 message 不仅仅能够降低 reviewer 的心
- Xxencode编码,也是一个二进制字符转换为普通打印字符方法。跟UUencode编码原理方法很相似,唯独不同的是可打印字符不同。通个UUe
- 我们了解到gin可用通过类似DefaultQuery或DefaultPostForm等方法获取到前端提交过来的参数。参数不多的情况下也很好用
- PHP中的MYSQL常用函数1、mysql_connect()-建立数据库连接格式:resource mysql_connect([stri
- 字典数据结构分析/* The ma_values pointer is NULL for a combined table * or poi
- 代码如下: '排序 Function Sort1(ary) Dim KeepChecking,I,FirstValue,Second
- 引言:闲来想到冒泡排序中的列表数据的排序,就想试试用随机数生成一个列表来排序试试,于是做了一下实验,本人实在是属于入门阶段,研究了一下终究还
- 可迭代对象和迭代器迭代(iterate)意味着重复,就像 for 循环迭代序列和字典那样,但实际上也可使用 for 循环迭代其他对象:实现了
- 目录分页后添加删除功能实现模态框编辑内容完整代码笔记利用layui框架实现分页:layui实现完整表格分页:自己实现分页:# name: m
- 卸载MySQL1、在控制面板,卸载MySQL的所有组件控制面板——》所有控制面板项——》程序和功能,卸载所有和MySQL有关的程序2、找到你