前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >35行代码下载任意网页的图片

35行代码下载任意网页的图片

作者头像
Python研究者
发布2021-01-25 15:18:22
6490
发布2021-01-25 15:18:22
举报
文章被收录于专栏:Python研究者

一、简介

有没有一种代码可能实现下载任意网页的图片,这样对于需要下载大量壁纸,图片的小伙伴来说真是一个好福利,今天我们就来试试。

先看视频演示效果

35行代码下载任意网页的图片_演示视频

https://v.qq.com/x/page/f3220zfigqq.html

二、分析

爬取过网页图片的小伙伴都知道,需要通过lxml去解析对应的网页,每一个网页的网页标签结构不一样,因此爬取一个网站的图片就需要解析一次,那想爬取多个网站时,那.....,(打扰了,告辞)

因此我们来看一下网页的图片存放在哪个网页标签

案例网页1

代码语言:javascript
复制
###网页链接
http://desk.zol.com.cn/bizhi/9461_115065_2.html

案例网页2

代码语言:javascript
复制
###网页链接
http://www.netbian.com/index.htm

案例网页3

代码语言:javascript
复制
###网页链接
http://www.jj20.com/bz/mwjy/msdc/294138.html

通过这三个案例网站的分析可以发现图片都是在img标签下,因此根据这个规律可以写正则表达式去进行爬取图片。

三、代码

所需库

代码语言:javascript
复制
import re
import requests

re是正则表达式的库,requests用于获取网页数据

请求网页

代码语言:javascript
复制
#请求头 
headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 Edg/87.0.664.75'
    }
#请求数据,其中url是目标网页
web_text = requests.get(url, headers=headers).text

正则表达式

代码语言:javascript
复制
ex = '<img.*?src="(.*?)".*?'
img_list = re.findall(ex, web_text)

获取图片链接

代码语言:javascript
复制
# 补充协议头
if not (img.startswith('http') or img.startswith('https')):
    img = 'http:' + img
img_binary = requests.get(img, headers=headers).content
# 切割出最后一个字符串
file_name = img.split('/')[-1]
# 切割 query字符
file_name = file_name.split('?')[0]

保存图片到本地

代码语言:javascript
复制
with open(f'./李运辰_img/{file_name}', 'wb') as fp:
    fp.write(img_binary)

四、效果演示

比如演示的图片链接

代码语言:javascript
复制
http://desk.zol.com.cn/bizhi/9461_115065_2.html

运行程序后

在本地文件夹可以看到爬取的图片

五、结尾

好了,以上就是完整的介绍,有问题的可以在下方评论,互勉互励,一起努力。

完整源码获取方式

公众号回复:万能图片爬虫

------------------- End -------------------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫数据分析挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先看视频演示效果
  • 案例网页1
  • 案例网页2
  • 案例网页3
  • 所需库
  • 请求网页
  • 正则表达式
  • 获取图片链接
  • 保存图片到本地
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档