python爬取网站图片(尽力在讲解)
1.首先,先导入两个库(一个就是常用的reques库,另一个就是BeautiSoup库)
import requests
from bs4 import BeautifulSoup
2.确定你要爬取的网页
本例子中爬取的网页是
https://www.dpm.org.cn/lights/royal.html(来自夜曲编程,写这篇博客是来复习的,也希望获得启发,毕竟有人在网上说过,爬虫也只是能爬取教过的网页。感觉爬虫好难啊。)
3.设置反爬虫
通过设置headers(当然设置发爬虫还可以限制爬取频率来限制,让服务器认为你是一个人类,哈哈!(time.sleep(2)))
打开网页后,按f12,查看网络的第一个文件,无论第一个文件叫什么,都是打开第一个文件,然后查看他的user-agent
4.查看网页的页数规律
也就是查看第一页的图片是什么链接,第二页是什么,第三页,第四页,他们之间有什么规律和差别。
可以把鼠标放在页码序号哪里,右侧就会出现图中右侧序号的页面。(把鼠标轻触右侧的红框里的链接,就会出现完整的网页链接。)
第一页的网页链接就是:
https://www.dpm.org.cn/lights/royal/p/1.html
第二页:
https://www.dpm.org.cn/lights/royal/p/2.html
第三页:
https://www.dpm.org.cn/lights/royal/p/3.html
5.用requests库请求网页
response=requests.get(url,headers=headers)
headers=headers是把你的爬虫伪装成用户去读取数据
6.将读取的内容转换成文本
html=response.text
7.解析
soup=BeautifulSoup(html,"lxml")
8.寻找节点
content_all=soup.find_all(class_="pic")
个人觉得这是一个十分难的工作,过几天会出一个本网页的节点寻找方法,我是不会找的。
9.寻找每一个图片的节点
imgContent=content.find(name="img")
图片节点
10.找每一个图片的链接并请求
imgUrl=imgContent.attrs["src"]#一页网页中每个图片的链接
imgResponse=requests.get(imgUrl)
img=imgResponse.content
11.写入文件
with open(f"E:/bc/pythonProject/lianxi/{imgName}.jpg","wb")as f:f.write(img)
建议将文件路径写的越全越好
以下是全部代码
import requests
from bs4 import BeautifulSoup
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53"}
#url="https://www.dpm.org.cn/lights/royal.html"
imgName=0
for page in range(1,4):url=f"https://www.dpm.org.cn/lights/royal/p/{page}.html"response=requests.get(url,headers=headers)html=response.textsoup=BeautifulSoup(html,"lxml")content_all=soup.find_all(class_="pic")for content in content_all:imgContent=content.find(name="img")imgName=imgName+1imgUrl=imgContent.attrs["src"]#一页网页中每个图片的链接imgResponse=requests.get(imgUrl)img=imgResponse.content#print(imgUrl)with open(f"E:/bc/pythonProject/lianxi/{imgName}.jpg","wb")as f:f.write(img)
写在最后,我感觉找节点还是很难,呜呜,希望哪个大佬能指点我一下。本博客仅代表我的个人看法,本人初学者一枚,有问题还请不吝赐教。
python爬取网站图片(尽力在讲解)相关推荐
- Python爬取网站图片并保存,超级简单
Python爬取网站图片并保存,超级简单 先看看结果吧,去bilibili上拿到的图片=-= 第一步,导入模块 import requests from bs4 import BeautifulSou ...
- Python爬取网站图片数据
Python爬取网站图片数据 找到需要爬取的网站地址 模拟网站http请求 根据调试模式获取的了解读取到真实的地址url,读取请求头数据和参数信息,模拟http请求调用 import requests ...
- python爬取网站图片链接并保存,Python爬取网站图片并保存的实现示例
先看看结果吧,去bilibili上拿到的图片=-= 第一步,导入模块 import requests from bs4 import BeautifulSoup requests用来请求html页面, ...
- Python爬取网站图片(爬虫入门demo)
代码功能: 爬取网站的教师图片,在用户主机上创建好PNG文件夹保存共110张图片,同时把每张图片的老师介绍内容写入H3.txt文件中. 实现思路: 打开该网页后用F12查看网页的html原代码,发现图 ...
- python爬虫怎么爬取图片_怎么用python爬取网站Jpg图片
用python爬取网站图片,通过引用requests库就可完成.下面,小编将以爬取百度图片为例 工具/原料 python环境,网络 安装requests库 1 cmd打开命令行界面,输入pip ins ...
- python 第一行 报错_初学Python-只需4步,爬取网站图片
很多人学习Python很重要的一个原因是,可以很简单的把一个网站的数据爬下来. 尤其是做我们这一行,产品经理,电商行业. 领导:弄一个买卖游戏周边商品的交易APP出来.我:行,那我们卖什么呀?领导:看 ...
- python爬取网站的图片
python爬取网站的图片 本次爬取图片所需要用到的库:Requests库,BeautifulSoup库,正则表达式,os库. 思路:先爬一张图片,再爬一个网站的图片 先爬一张图片: 首先要得到这张图 ...
- python爬取网站源代码+图片
python爬取网站源代码+图片 需求分析 基础知识 正则表达式 python网络请求 文件读写 实现 基本思路 具体实现 结果 总结 需求分析 大部分有志青年都想建立属于自己的个人网站,从零开始设计 ...
- python如何爬取网页视频_快就完事了!10分钟用python爬取网站视频和图片
原标题:快就完事了!10分钟用python爬取网站视频和图片 话不多说,直接开讲!教你如何用Python爬虫爬取各大网站视频和图片. 638855753 网站分析: 我们点视频按钮,可以看到的链接是: ...
最新文章
- 吴恩达《卷积神经网络》精炼笔记(2)-- 深度卷积模型:案例研究
- java 接口防刷_java轻量级接口限流/防刷插件
- c语言 宏定义 去除宏定义_如何检查是否在C中定义了宏?
- 云计算实战系列十二(Linux系统优化)
- linux无法找到网卡6,CentOS 6/7克隆主机网卡无法启动解决
- 20 年前,微软怎样改变了我们鼠标的使用方式?| 极客头条
- “同一天生日”网络募捐被疑造假,为什么却成了程序员的锅?
- Spring Boot的每个模块包详解
- python webkit内核_GitHub - yufengsoft/wke: 基于Webkit精简的纯C接口的浏览器内核,可用于桌面UI、浏览器。...
- Arcpy基础入门-1、如何使用arcpy
- pdg file的打开
- sqlserver中能用when_sqlserver中casewhen用法小结
- Windows下PHP环境的搭建
- python获取网页数据判断并提交_python3爬虫无法通过网页内容判断存在与否?
- python写Bicubic方法,跑数据集Set5和Set14,保存PSNR和SSIM的值
- 「Linux」- 修改鼠标滚轮的滚动方向 @20210315
- IT狂人第一至四季/全集The IT Crowd迅雷下载
- oracle to_char 进制转换_〖Oracle 转载〗Oracle的数据类型转换 to_char
- 如何做好性能压测(一):压测环境的设计和搭建
- 部署ServletContext的时候报错 Class com.xxxxx.ContextServlet is not a Servlet
热门文章
- Win7蓝屏APC_INDEX_MISMATCH解决方案(声卡)
- http服务器发送消息,node.js+electron教程(二): http服务器, ws服务器, 进程管理
- validationGroup和Page_ClientValidate()
- Solution to luogu P7514——普及选手也能看懂!
- Windows 将”管理员取得所有权“加入右键菜单
- java linkedlist poll_Java LinkedList poll()方法
- Android 文件加密及解密
- The Meaning of Life 生命的意义
- 三层交换机使用trunk口跨vlan时对应的数据流程
- 关于Risc指令采取流水线技术后时钟周期的变化