Python爬取壁纸

    不想一张张看壁纸怎么办,不想一张张下载怎么办,来让我们用python解决一切,爬取一网站所有壁纸。

1.准备前期运行环境

·python运行环境,安装request模块 (这个问题需要自己去解决)

2.分析网页行为 [想直接点的,可以跳过这一节,copy-code-running]

·网站管理员禁用了F12

openB.png

·分析出网站图片地址

01.png

可以拿这个地址去新标签试一下,我们会发现请求到的是图片的缩略图,明显不是我们想要的
我们要拿到图片的真实地址
我们去看网站请求的资源
02.png

这个请求,站长做了验证,所以我们需手动赋值数据内容保存到本地备用
我们分析一下用了什么方式请求到的真实地址
03.png

·分析地址的构成规律
json文件中每一个item
t代表图片类型 type
x代表图片宽 width
i代表图片的id
y代表图片的高 height
很显然这个拼接规律是 其中的图片id和类型要替换

3.根据分析到的解决思路写代码

我没有做用户代理,没有按工程化流程来,没有做异常处理
只是简述了这个小demo的分析原理
测试的时候下载有点迟缓,不过不影响

import requests
import json

# 定义基本变量
urlbase = "https://w.wallhaven.cc/full/"
# json文件地址
filejson = "imgjson.json"
# 下载壁纸的路径 -请自行修改
filepath = "D:\\PycharmProjects\\robots\\bizhi\\"
# 保存的拼接字符串
Imgjson = []

def Concaturl(records):
    for item in records:
        imgType = "png" if item["t"] == "p" else "jpg"
        imgid = item["i"]
        concaturl = imgid[0:2] + "/wallhaven-" + imgid + "." + imgType
        Imgjson.append(concaturl)
    print("地址拼接完成,开始下载...")

def DownLoadImg():
    i = 1
    for img in Imgjson:
        imgtype = "png" if img[-3:-2] else "jpg"
        url = urlbase + img
        ref = requests.get(url)
        fh = open(filepath + str(i) + "." + imgtype + "", "wb")
        fh.write(ref.content)
        print("第" + str(i) + "张下载成功")
        i += 1
    print("全部下载成功")

if __name__ == '__main__':
    f = open(filejson, "r")
    load_dict = json.load(f)
    records = load_dict["result"]["records"]
    # 拼接好的字符串列表
    Concaturl(records)
    # 下载函数
    DownLoadImg()
04.png

好看的壁纸就存下来啦,不用挑,也不用一个个下。人生路远,简单就好!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,183评论 6 516
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,850评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,766评论 0 361
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,854评论 1 299
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,871评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,457评论 1 311
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,999评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,914评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,465评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,543评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,675评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,354评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,029评论 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,514评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,616评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,091评论 3 378
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,685评论 2 360

推荐阅读更多精彩内容

  • 前言 爬虫就是请求网站并提取数据的自动化程序,其中请求,提取,自动化是爬虫的关键。Python作为一款出色的胶水语...
    王奥OX阅读 3,410评论 1 8
  • 负重前行,是生活给我们的盔甲吗?要经历多少失望,绝望后才能对着希望微笑! 近期工作异常的忙碌,两部分工作都在急促的...
    虹丹阅读 105评论 0 0
  • 人间过客, 一场苦旅。 宁静可以致远, 何不漫步红尘? 看看山, 看看水, 留意沿途风景。 搬开心墙, 清除内心阴...
    浪淘沙0706阅读 142评论 0 1
  • 生命是一张弓,那弓弦是梦想; 梦想只要能能持久,就能成为现实; 生活中没有理想的人,是很可悲的。
    悦知木兮阅读 2,258评论 40 38