竟然如此简单!输入明星名字就可以直接爬取高清图片

简介: **听说你在自己喜欢的明星壁纸?比如李易峰,王一博,易烊千玺、王源、王俊凯,李现等。今天教你批量下载这些明星高清壁纸****(文末有福利)**

听说你在自己喜欢的明星壁纸?比如李易峰,王一博,易烊千玺、王源、王俊凯,李现等。今天教你批量下载这些明星高清壁纸(文末有福利)

最近图慌,闲来无事爬取李易峰的高清图片,当做手机壁纸也是不错的选择。
废话不多说,下面上效果图:

是不是很帅气呢?

爬取的步骤也非常简单:

1、获取目标网址。
2、浏览器抓包,得到图片的具体url。
3、通过Python编写代码,用requests模块对url发起请求,将图片下载到本地文件夹中。

本文是通过面向对象的方法,代码更加稳定,想要多少张图片就能下载多少张图片。

1、分析目标网站

首先,要想爬取图片,第一步肯定是要分析目标网址,以此来获取图片的 url。打开浏览器的控制台,对该网页进行抓包,发现该网页上的图片是通过瀑布流的方式加载出来的,于是在往下滑,得到的下方箭头指向的网址,那这个是否就是我们需要的呢。

为了证实该网址里面有我们需要的数据,打开preview,发现这些这是我们需要的,数据通过json的格式给我们呈现出来。

抓包得到我们需要的网址,接下来就简单多了,通过requests模块向该网址发起请求,那不完事了吗。

2、编写代码

说干就干,首先导入我们需要的模块

import requests
import time
import random
from urllib.request import urlretrieve
import os

下面就开始敲代码,通过面向对象的方式,先将具体的框架写下来

class Wangyibo(object):
    def __init__(self,name):
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
        }
        self.name = name
 
 
if __name__ == "__main__":
    #明星图片
    name="李易峰"
    Wangyibo(name).run()

为了不被网站发现我们是网络爬虫而不是浏览器,因此要加入请求头。

def __init__(self):
  self.headers = {
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
  }

下面步入正轨,对网址发送请求,先暂时爬取九页

def run(self):
        for i in range(0, 200, 24):
            url = 'https://www.duitang.com/napi/blog/list/by_search/?kw='+self.name+'&type=feed&include_fields=top_comments%2Cis_root%2Csource_link%2Citem%2Cbuyable%2Croot_id%2Cstatus%2Clike_count%2Clike_id%2Csender%2Calbum%2Creply_count%2Cfavorite_blog_id&_type=&start={}'.format(
                i)
            self.request(url)

下面对该网址发起请求,将图片下载到本地

def download_pic(self, href):
        # 判断当前目录下是否存在该文件夹,如果没有就创建
        if not os.path.exists(self.name):
            os.mkdir(self.name)
 
 
        name = os.path.split(href)[1]
        urlretrieve(href, './'+self.name+'/{}'.format(name))
        print("=================={}下载完成===================".format(name))
        time.sleep(random.random())
    def request(self, url):
        response = requests.get(url, headers=self.headers)
        time.sleep(random.uniform(0, 1))
        lists = response.json()['data']['object_list']
        for list in lists:
            pic_url = list['photo']['path']
            self.download_pic(pic_url)  # pic_url即为图片的网址

为了防止爬取太快,可能会被封IP,因此每爬取一张图片都休息一定的时间,保证爬虫的安全、稳定性。最后运行整体的程序,过不了多久,王一博的帅照全部都被下载到本地啦。

3、结语

1、为了大家方便学习,我把本文的完整源码上传,需要的通过同名公众领取:明星壁纸

2、整个程序的代码相对来说还是非常简单的,感兴趣的小伙伴们都可以自己试一下。

if __name__ == "__main__":
    #明星图片
    name="李易峰"
    Wangyibo(name).run()

3、在这里改为自己喜欢的明星名字就可以了,他/她的高清壁纸非你莫属。

相关文章
|
2月前
|
API
图片转ASCII图片(像素图,艺术图)免费API接口教程
此API可将指定图片转换为ASCII风格或像素风格图片。支持POST/GET请求,需提供用户ID、KEY及图片等参数,可选设置背景色、文本色、图片宽度、灰度及风格。返回状态码、提示信息及图片地址。示例及详情见官网。
|
3月前
|
Web App开发 JSON JavaScript
爬取王者荣耀图片
【10月更文挑战第11天】爬取王者荣耀图片。
102 2
图库,设计类软件,App视频截图软件,外加设计图库,在你截取视频就能够实现图片收录,通过设计类网站后台控制系统,可以提前设置好,统计的分类内容,定义好分类,自动收录图片,再将截图汇总整理展示
图库,设计类软件,App视频截图软件,外加设计图库,在你截取视频就能够实现图片收录,通过设计类网站后台控制系统,可以提前设置好,统计的分类内容,定义好分类,自动收录图片,再将截图汇总整理展示
图库,设计类软件,App视频截图软件,外加设计图库,在你截取视频就能够实现图片收录,通过设计类网站后台控制系统,可以提前设置好,统计的分类内容,定义好分类,自动收录图片,再将截图汇总整理展示
|
7月前
|
文字识别 安全 API
印刷文字识别产品使用合集之不想通过读取图片二进制文件的方式来传入图片内容,如何进行图片内容识别
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
7月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之图片审核请求了15张图片,只返回了10张图片,是什么原因
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
7月前
|
文字识别 算法 小程序
视觉智能开放平台产品使用合集之图片批量审核一次最多能审核多少张照片
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
7月前
|
文字识别 API 开发工具
视觉智能开放平台产品使用合集之人像分割抠图返回的图片URL是否可以直接转存到自己的储存桶
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
存储 人工智能 前端开发
前端合成海报并保存到本地
前端合成海报并保存到本地
98 0
|
搜索推荐 Python Windows
|
8月前
|
机器学习/深度学习 算法 开发工具
视觉智能平台常见问题之视频封面输出的图片会出现过曝如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。