阅读之前先保证会使用python并且了解html前端结构
首先打开
目标网站
我们可以看到一个动漫角色的图片,现在我们要利用python程序来保存这张图片到本地。
1.右键图片
选择审查元素(有些浏览器叫做检查)
然后Ctrl+shift+c,打开选取元素模式,点击图片即可找到下图的位置

可看到这张图片,也就是网页的结构
我们要提取的图片在body->div->div->div->img中。
因为这个img有id,所以我们很容易定位
标签img,id=“PicBigBtn”里的src值即可,
但是我们将这个图片复制打开,发现他的像素很低,所以我们判断他不是我们要找的图片。
回到目标网站

右上角可以看到放大,我们点击放大,看到了清晰的图片
这时再次审查元素。
然后Ctrl+shift+c,打开选取元素模式,在图片上的时候我们发现一个翻页div遮挡了图片这时候我们来到左下高亮部分右键。


删除元素。删除后再次选取元素模式,点击图片

这样就找到我们要的img了,复制这个img的地址打开新页面,我们可以看到清晰的图片
这张图片我们可以看出,很容易索引。

因为id是唯一的,我们只需要寻找img标签id等于layerDeskPic即可,

分析完了,接下来我们来到我们的python

import requestsfrom bs4 import BeautifulSoup

导入我们的两个包
写好我们的代码

import requestsfrom bs4 import BeautifulSoupdef pachong():url = "http://desk.zol.com.cn/bizhi/755_8386_2.html"  # 目标网站html = requests.get(url)  # requests的get方法,参数填写url即可返回网页全部内容soup = BeautifulSoup(html.content, "html.parser")  # BeautifulSoup方法,第一个参数为完整的网页,上一句我们已经获得。# (接上行)第二个参数是网页解析器,这里我们使用比较方便的html.parser解析器。(如果html变量不用content的话将会返回访问网页的状态码)image_html = soup.find("img", id="layerDeskPic").attrs["src"]  # 在网页分析中已经阐明寻找的位置,img表情指定id里的src(图片网址)the_image = requests.get(image_html)  # 再次使用requests的get方法,参数为图片的网址。with open("图片.jpg", "wb+") as f:f.write(the_image.content)  # 写入文件,the_image的content属性,(the_image返回访问网页的状态码)if __name__ == '__main__':pachong()

运行发现得到图片,一个1x1像素的图片…
然后我们将后边注释掉

import requestsfrom bs4 import BeautifulSoupdef pachong():url = "http://desk.zol.com.cn/bizhi/755_8386_2.html"  # 目标网站html = requests.get(url)  # requests的get方法,参数填写url即可返回网页全部内容soup = BeautifulSoup(html.content, "html.parser")  # BeautifulSoup方法,第一个参数为完整的网页,上一句我们已经获得。# (接上行)第二个参数是网页解析器,这里我们使用比较方便的html.parser解析器。(如果html变量不用content的话将会返回访问网页的状态码)image_html = soup.find("img", id="layerDeskPic").attrs["src"]  # 在网页分析中已经阐明寻找的位置,img表情指定id里的src(图片网址)print(image_html)# the_image = requests.get(image_html)  # 再次使用requests的get方法,参数为图片的网址。# with open("图片.jpg", "wb+") as f:#     f.write(the_image.content)  # 写入文件,the_image的content属性,(the_image返回访问网页的状态码)if __name__ == '__main__':pachong()

输出查看内容,内容是《https://icon.zol-img.com.cn/article/slideNew/blank.gif》
这显然有误,因此我们猜测是网页结构发生了变化,我们再回到目标网站
审查元素,然后用元素选取选择右上角的放大按钮


可见图片的网址是这个
我们点一下这个按钮放大,然后关闭放大后的图片

可以对比发现,这个值变了,具体怎么变的我们不需要深究。
我们比较这两个值发现,变的只有中间的分辨率数字
https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/01/0F/ChMkJlbKwqqIJUCGAAHop_ytZA4AALGrQN-1PwAAei_545.jpg

http://desk.fd.zol-img.com.cn/t_s1920x1080/g5/M00/01/0F/ChMkJlbKwqqIJUCGAAHop_ytZA4AALGrQN-1PwAAei_545.jpg
因此我们只需要获取第一个网址,对字符串960x600c5替换为1920x1080即可

import requestsfrom bs4 import BeautifulSoupdef pachong():url = "http://desk.zol.com.cn/bizhi/755_8386_2.html"  # 目标网站html = requests.get(url)  # requests的get方法,参数填写url即可返回网页全部内容soup = BeautifulSoup(html.content, "html.parser")  # BeautifulSoup方法,第一个参数为完整的网页,上一句我们已经获得。# (接上行)第二个参数是网页解析器,这里我们使用比较方便的html.parser解析器。(如果html变量不用content的话将会返回访问网页的状态码)image_html = soup.find("img", id="bigImg").attrs["src"]  # 在网页分析中已经阐明寻找的位置,img表情指定id里的src(图片网址)image_html = change(image_html)  # 调用change函数the_image = requests.get(image_html)  # 再次使用requests的get方法,参数为图片的网址。with open("图片.jpg", "wb+") as f:f.write(the_image.content)  # 写入文件,the_image的content属性,(the_image返回访问网页的状态码)def change(image_html):return image_html.replace("960x600c5", "1920x1080")  # 替换字符串if __name__ == '__main__':pachong()

改写后的代码,运行,我们发现已经可以正常使用了,在程序的目录下的图片.jpg即是我们爬的图片!

python,分析网页,使用 bs4和requests 爬取网页指定图片相关推荐

  1. Crawl:利用bs4和requests爬取了国内顶级某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测

    Crawl:利用bs4和requests爬取了国内顶级某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测 目录 利用bs4和requests爬取了国内顶级某房源平 ...

  2. python正则表达式爬取网页数据_常用正则表达式爬取网页信息及HTML分析总结

    Python爬取网页信息时,经常使用的正则表达式及方法. 1.获取 标签之间内容2.获取 超链接之间内容3.获取URL最后一个参数命名图片或传递参数4.爬取网页中所有URL链接5.爬取网页标题titl ...

  3. python 网页爬虫nike_python网络爬虫-爬取网页的三种方式(1)

    0.前言 0.1 抓取网页 本文将举例说明抓取网页数据的三种方式:正则表达式.BeautifulSoup.lxml. 获取网页内容所用代码详情请参照Python网络爬虫-你的第一个爬虫.利用该代码获取 ...

  4. python爬虫(一):正则表达式爬取网页文本

    文章目录 1 正则表达式 2 网页文本爬取 2.1 单页文本 2.2 多页文本 2.2.1 演示文本 2.2.2 文本信息获取 3 实战记录 3.1 网页纯文本处理 3.1.1 常规网页 3.1.2 ...

  5. python实战项目一:requests爬取淘宝图片

    按关键词爬取淘宝的图片 ●实验过程遇到的问题: 1.      一开始我没注意,将文件名写为requests.py,但是运行时却出现了这个错误:module 'requests' has no att ...

  6. python超详细零基础 bs4解析之爬取唯美图片

    文章目录 前言 前言 本篇文章主要介绍使用bs4解析来爬取某网站上的唯美高清大图,涉及到的零碎知识较多,详细易懂,适合新手小白爬虫入门. 思路如下: ①拿到主页面的源代码,然后提取到子页面的链接地址h ...

  7. python爬网页源码_python爬虫爬取网页的内容和网页源码不同?

    可以看到这里id为k_total的元素值不同,爬出来是1,网页源码是55. 附还未完成的代码:import requests from bs4 import BeautifulSoup import ...

  8. py3+requests+urllib+bs4+threading,爬取斗图图片

    实现原理及思路请参考我的另外几篇爬虫实践博客 py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图:http://www.cnblogs.com/uncleyong/p/6892688. ...

  9. python外国网站爬虫_python 网络爬虫-爬取网页外部网站

    前言 上一篇中我们在维基百科的内部网站上随机跳转进入文章类网页,而忽视外部网站链接.本篇文章将处理网站的外部链接并试图收集一些网站数据.和单个域名网站爬取不同,不同域名的网站结构千差万别,这就意味我们 ...

最新文章

  1. 教你用机器学习匹配导师 !(附代码)
  2. jquery form 序列化
  3. bug death march
  4. HDU 5527:Too Rich(DFS+贪心)***
  5. html5--7-33 阶段练习5
  6. 使用网络存储SAN和NAS
  7. MySQL(七)联结表
  8. HTML5能为我们带来什么?(一)
  9. 老师一定没有教!9个数学速算技巧!看到第1个就跪了!
  10. UNICODE十六进制数组转成中英文
  11. kadane算法_使用KADANE的算法求最大子阵列和
  12. 现代操作系统原理与实践03:操作系统结构
  13. VScode输出中文乱码的解决方法------测试过可以用
  14. 论文赏析[AI18]更快的基于非二叉化自底向上策略的转移系统成分句法分析
  15. 二十一天学通C语言:C语言中指针排序
  16. javascript 原型链实现继承简单例子
  17. Java基础——集合List+Set+泛型+Map
  18. [面试题] 从抽屉找东西的概率学问题
  19. 接入小程序客服(java版教程),处理第一次主动推送会话超时问题
  20. macOS硬盘如何格式转换?用Tuxera NTFS就够了!

热门文章

  1. 计算机考试记不住题目,驾考科目一口诀,科一题目太多记不住?快来看看这些技巧...
  2. MacOS开发-用命令行压缩文件
  3. 计算机系统分盘作用,电脑为什么要分区,分区的好处
  4. Alpha阶段敏捷冲刺⑥
  5. GO学习笔记1.5:第一个GO项目常见问题
  6. 如何把带图片html转为doc,教您一招:如何将图片里面的文字转成word格式并能编辑...
  7. NIST的安全内容自动化协议(SCAP)以及SCAP中文社区简介
  8. CF 1567 C. Carrying Conundrum(思维)
  9. 电容器功率密度和能量密度
  10. 使用CSS展现出各行星轨道