成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 輕松爬取上千張小姐姐圖片

開發 前端
整體代碼下來,我們主要用到了 Python 爬蟲簡單技術,Flask 的簡單應用以及部分 HTML&JavaScript 技術,技術棧還是比較簡單的,喜歡的小伙伴一起來實現下吧!

廢話不多說,咱們直接上最終的效果圖

圖片圖片

圖片圖片

我們獲取圖片的目標地址是 360 壁紙庫,網上有大神已經做過一波分析了,我們直接拿來使用

https://mkblog.cn/581/

美圖獲取

我們首先獲取壁紙分類信息

先使用 postman 調用,查看響應數據情況

圖片圖片

使用代碼保存分類信息

import requests
import json
import time

category = requests.get("http://cdn.apc.360.cn/index.php?c=WallPaper&a=getAllCategoriesV2&from=360chrome")
category_list = category.json()['data']
# 保存category到json文件
category_list
with open("categoty.json",'w', encoding='utf-8') as file_obj:
    json.dump(category_list, file_obj, ensure_ascii=False, indent=4)

接下來再看下具體的獲取圖片的接口情況

圖片圖片

同樣可以根據響應信息,來編寫解析代碼

def get_pic(categoty, count):
    for i in range(1, 100):
        pic_list = []
        pic_url = "http://wallpaper.apc.360.cn/index.php?c=WallPaper&a=getAppsByCategory&cid=%s&start=%s&count=%s&from=360chrome" % (categoty, str(i), count)
        pic = requests.get(pic_url)
        pic_data = pic.json()["data"]
        if pic_data:
            tmp = deal_pic_data(pic_data)
        else:
            break
        time.sleep(5)

其中在函數 deal_pic_data 當中,我們調用了兩個子函數,分別用來下載圖片和 tag 信息

def download_img(img_url, name):
    print (img_url)
    r = requests.get(img_url, stream=True)
    print(r.status_code) # 返回狀態碼
    if r.status_code == 200:
        open("pic\\" + name + '_img.png', 'wb').write(r.content) # 將內容寫入圖片
        print("done")
    del r


def save_tag(tag, name):
    print(tag)
    with open("tag\\" + name + ".txt", "w") as f:
        f.write(tag)

下圖即為爬取過程

圖片圖片

最終我們在本地就成功保存了上千張小姐姐照片

圖片圖片

你以為這樣就結束了嗎,當然沒有

制作網站

畢竟這么多的小姐姐,都在文件夾里是多么的不方便查看呀,我們做成 web 瀏覽起來是真的香!

我們先編寫 index 頁面的視圖函數

@app.route('/', methods=['GET', 'POST'])
def index():
    pic_path = basedir + "\static\img\pic"
    pic_list = os.listdir(pic_path)
    seg = int(len(pic_list)/4)
    data = []
    socre = 5
    for n in pic_list[:seg]:
        tmp_data = []
        pic_url = random.choice(pic_list)
        tmp_data.append(r"\static\img\pic\\" + pic_url)
        tmp_data.append(pic_list.index(n))
        data.append(tmp_data)
    return render_template('index.html', data=data, score=socre)

我們從本地文件夾中拿到小姐姐圖片,然后組裝成需要的數據格式,傳遞給前端

對于 index.html 代碼

<section id="gallery-wrapper">
        {% for p in data %}
            <article class="white-panel">
            <img class="thumb" data-original="{{ p[0] }}">
                <h1><a href="{{ url_for('nvshen', id=p[1]) }}" title="去設置" target="_blank">喜歡??</a>
                </h1>

        </article>
        {% endfor %}

    </section>

在拿到后端傳遞的數據后,依次展示在 section 標簽中

接下來是詳情頁面

@app.route('/nvshen/<id>/', methods=['GET', 'POST'])
def nvshen(id):
    pic_path = basedir + "\static\img\pic"
    pic_list = os.listdir(pic_path)
    pic_url = r"\static\img\pic\\" + pic_list[int(id)]
    data = []
    score_pic_path = r"static\img\pic\\" + pic_list[int(id)]
    gender, age, female_score, male_score, emotion_data = fire_score(score_pic_path)
    data.append('性別: %s' % gender)
    data.append('年齡: %s' % age)
    data.append('顏值評分: %s' % female_score)
    data.append('情緒: %s' % emotion_data)
    return render_template('nvshen.html', nvshenid=id, main_url=pic_url, data_list=data, user_score=5)

我這里調用了曠視 Face++ 的人臉識別接口,自動返回不同小姐姐的顏值信息

再來看看前端的 HTML 代碼

<div align="center">
    <section style="width: 100%">
        <img src="{{ main_url }}" width="40%" height="20%">
        <div id="starBg1" class="">
            <input type="button" name="設置為桌面" value="設置為桌面" onclick="setWallpaper('{{ main_url }}')" id="btn">
        </div>
    </section>
</div>

<section id="gallery-wrapper">
    {% for d in data_list %}
    <article class="white-panel">
        <h1><a href="#">{{ d }}</a>
        </h1>
    </article>
    {% endfor %}

</section>

分別展示設置桌面按鈕和顏值信息卡片

最后我們再來看看如何設置桌面壁紙

可以看到在上面的代碼中,調用了一個 setWallpaper 函數

<script>
    function setWallpaper(pic) {
        var filename;
        if (pic.indexOf("\\") > 0)//如果包含有"/"號 從最后一個"/"號+1的位置開始截取字符串
        {
            filename = pic.substring(pic.lastIndexOf("\\") + 1, pic.length);
        }
        else {
            filename = pic;
        }
        var xhr = new XMLHttpRequest();
        xhr.responseType = "json";
        xhr.open('GET', '/setwallpaper/' + filename, true);
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xhr.onload = function (ev) {
            if (this.status === 200) {
                if (this.response['end'] === true) {
                    flag = false;
                }
                var mydata = this.response['msg'];
                //console.log(mydata[1][2]);
            } else if (this.status === 422) {
                console.log("Set Wallpaper error");
            }
        };
        xhr.send();
    }
</script>

我們這里調用了后端的 setwallpaper 接口

@app.route("/setwallpaper/<pic>")
def setWallpaperView(pic):
    try:
        pic_path = basedir + "\static\img\pic\\" + pic
        result = setWallpaper(pic_path)
        return jsonify({"msg": "OK"}), 200
    except Exception as e:
        return jsonify({"msg": "ERROR"}), 422


import win32api
import win32gui
import win32con

def setWallpaper(imagepath):
    k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)
    win32api.RegSetValueEx(k, "WallpaperStyle", 0, win32con.REG_SZ, "2") # 2拉伸,0居中,6適應,10填充,0平鋪
    win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0")  # 1表示平鋪,拉伸居中等都是0
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,imagepath, 1+2)
    return "Set OK"

通過后端代碼,來進行桌面壁紙的設置,設置壁紙采用的是直接通過 win32gui 改寫注冊表信息

整體代碼下來,我們主要用到了 Python 爬蟲簡單技術,Flask 的簡單應用以及部分 HTML&JavaScript 技術,技術棧還是比較簡單的,喜歡的小伙伴一起來實現下吧

責任編輯:武曉燕 來源: 蘿卜大雜燴
相關推薦

2014-06-12 13:20:17

2020-10-27 16:20:51

人臉識別智能安全物聯網

2020-10-27 13:50:58

央視揭AI黑產

2019-10-21 10:01:58

Python素描技術

2020-06-18 15:43:56

程序員技能開發者

2023-12-05 13:49:00

AI模型

2017-11-10 14:12:35

2021-05-08 08:04:05

Python爬取素材

2020-10-28 18:10:59

網絡安全網絡安全技術周刊

2021-04-14 14:28:14

Python點攢抖音

2020-09-29 09:09:03

數據庫程序運行

2019-11-26 14:47:59

機器學習人工智能計算機

2020-05-26 10:20:56

Python開發工具

2018-04-04 13:44:59

數據庫MySQL延遲

2018-02-05 15:52:06

硬盤故障損壞

2021-10-05 21:03:54

BeautifulSo 爬蟲

2018-05-11 14:10:17

Python人臉識別

2022-08-02 09:42:48

混沌工程系統群

2022-02-23 14:21:20

Chrome插件瀏覽器

2020-08-17 09:15:09

AI 數據人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜免费福利片 | 久久国产成人 | 午夜精品久久久久久久久久久久久 | 九九久久久久久 | 国产欧美日韩 | 久久久久网站 | 精品在线一区 | 日韩成人免费av | 欧美三区视频 | 久久久久久久久久久蜜桃 | 欧美一级大片免费看 | 欧美日韩在线免费观看 | 看片国产 | 亚洲视频免费 | 四虎永久影院 | 久久a久久| 免费观看一级特黄欧美大片 | 中文字幕综合 | 亚洲免费网 | 国产成人精品免费视频大全最热 | 日本韩国欧美在线观看 | 久久国产欧美日韩精品 | 国产欧美在线观看 | 中文字幕精 | 欧美无乱码久久久免费午夜一区 | 久久久久久黄 | 成人小视频在线观看 | 成人午夜精品 | 91精品国产欧美一区二区 | 久久久久免费 | 一级毛片成人免费看a | 欧洲一级黄 | 亚洲精品久久久久久一区二区 | 国产一区二区在线免费观看 | 成人国产网站 | 亚洲欧美中文日韩在线v日本 | 国产精品久久久久永久免费观看 | 老牛影视av一区二区在线观看 | 日本色婷婷 | 看片国产| 国产精品久久久久9999鸭 |