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爬取网站图片(尽力在讲解)相关推荐

  1. Python爬取网站图片并保存,超级简单

    Python爬取网站图片并保存,超级简单 先看看结果吧,去bilibili上拿到的图片=-= 第一步,导入模块 import requests from bs4 import BeautifulSou ...

  2. Python爬取网站图片数据

    Python爬取网站图片数据 找到需要爬取的网站地址 模拟网站http请求 根据调试模式获取的了解读取到真实的地址url,读取请求头数据和参数信息,模拟http请求调用 import requests ...

  3. python爬取网站图片链接并保存,Python爬取网站图片并保存的实现示例

    先看看结果吧,去bilibili上拿到的图片=-= 第一步,导入模块 import requests from bs4 import BeautifulSoup requests用来请求html页面, ...

  4. Python爬取网站图片(爬虫入门demo)

    代码功能: 爬取网站的教师图片,在用户主机上创建好PNG文件夹保存共110张图片,同时把每张图片的老师介绍内容写入H3.txt文件中. 实现思路: 打开该网页后用F12查看网页的html原代码,发现图 ...

  5. python爬虫怎么爬取图片_怎么用python爬取网站Jpg图片

    用python爬取网站图片,通过引用requests库就可完成.下面,小编将以爬取百度图片为例 工具/原料 python环境,网络 安装requests库 1 cmd打开命令行界面,输入pip ins ...

  6. python 第一行 报错_初学Python-只需4步,爬取网站图片

    很多人学习Python很重要的一个原因是,可以很简单的把一个网站的数据爬下来. 尤其是做我们这一行,产品经理,电商行业. 领导:弄一个买卖游戏周边商品的交易APP出来.我:行,那我们卖什么呀?领导:看 ...

  7. python爬取网站的图片

    python爬取网站的图片 本次爬取图片所需要用到的库:Requests库,BeautifulSoup库,正则表达式,os库. 思路:先爬一张图片,再爬一个网站的图片 先爬一张图片: 首先要得到这张图 ...

  8. python爬取网站源代码+图片

    python爬取网站源代码+图片 需求分析 基础知识 正则表达式 python网络请求 文件读写 实现 基本思路 具体实现 结果 总结 需求分析 大部分有志青年都想建立属于自己的个人网站,从零开始设计 ...

  9. python如何爬取网页视频_快就完事了!10分钟用python爬取网站视频和图片

    原标题:快就完事了!10分钟用python爬取网站视频和图片 话不多说,直接开讲!教你如何用Python爬虫爬取各大网站视频和图片. 638855753 网站分析: 我们点视频按钮,可以看到的链接是: ...

最新文章

  1. 吴恩达《卷积神经网络》精炼笔记(2)-- 深度卷积模型:案例研究
  2. java 接口防刷_java轻量级接口限流/防刷插件
  3. c语言 宏定义 去除宏定义_如何检查是否在C中定义了宏?
  4. 云计算实战系列十二(Linux系统优化)
  5. linux无法找到网卡6,CentOS 6/7克隆主机网卡无法启动解决
  6. 20 年前,微软怎样改变了我们鼠标的使用方式?| 极客头条
  7. “同一天生日”网络募捐被疑造假,为什么却成了程序员的锅?
  8. Spring Boot的每个模块包详解
  9. python webkit内核_GitHub - yufengsoft/wke: 基于Webkit精简的纯C接口的浏览器内核,可用于桌面UI、浏览器。...
  10. Arcpy基础入门-1、如何使用arcpy
  11. pdg file的打开
  12. sqlserver中能用when_sqlserver中casewhen用法小结
  13. Windows下PHP环境的搭建
  14. python获取网页数据判断并提交_python3爬虫无法通过网页内容判断存在与否?
  15. python写Bicubic方法,跑数据集Set5和Set14,保存PSNR和SSIM的值
  16. 「Linux」- 修改鼠标滚轮的滚动方向 @20210315
  17. IT狂人第一至四季/全集The IT Crowd迅雷下载
  18. oracle to_char 进制转换_〖Oracle 转载〗Oracle的数据类型转换 to_char
  19. 如何做好性能压测(一):压测环境的设计和搭建
  20. 部署ServletContext的时候报错 Class com.xxxxx.ContextServlet is not a Servlet

热门文章

  1. Win7蓝屏APC_INDEX_MISMATCH解决方案(声卡)
  2. http服务器发送消息,node.js+electron教程(二): http服务器, ws服务器, 进程管理
  3. validationGroup和Page_ClientValidate()
  4. Solution to luogu P7514——普及选手也能看懂!
  5. Windows 将”管理员取得所有权“加入右键菜单
  6. java linkedlist poll_Java LinkedList poll()方法
  7. Android 文件加密及解密
  8. The Meaning of Life 生命的意义
  9. 三层交换机使用trunk口跨vlan时对应的数据流程
  10. 关于Risc指令采取流水线技术后时钟周期的变化