吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1768|回复: 19
收起左侧

[Python 原创] python可执行程序图形界面爬取壁纸

[复制链接]
Greennova 发表于 2022-11-15 20:13
本帖最后由 Greennova 于 2022-11-16 12:45 编辑

# python爬取壁纸
运行代码
图形界面输入图片类型,起末页数
图片类型
image.png
可爬取图片类型,要用拼音输入如下图,起始页从2开始,这里是随便打了一个
第一页会返回404
image.png

在输入图片类型时要先在项目下img文件夹创建图片类型文件
运行代码会将图片命名好后自动分类下载至图片类型文件
image.png

点击爬取


正在爬取...
image.png



image.png
将程序通过pyinstaller打包成exe可执行程序,将产生下面这个文件以及其他文件
image.png

可运行程序在dist文件夹下,如下,由于我这里使用的是ubuntu,所以没有显示exe后缀
image.png
image.png
运行该程序就可以产生一个图形界面,输入相关信息后点击爬取便可爬取图片壁纸,说明一下,程序执行后要等爬取完毕后才可以关闭程序。
所以爬取页数尽量不要太大,当然你也可以结束进程
代码,附源码文件
import tkinter as tk
import time
import requests
import re
from bs4 import BeautifulSoup


def click_button():
    x = int(message1.get())
    y = int(message2.get())
    for page in range(x, y):
        print(f"正在爬取第{page}")
        imgtype = message.get()
        print(imgtype)
        url = f"http://www.netbian.com/{imgtype}/index_{page}.htm"
        resp = requests.get(url)
        print(resp)
        resp.encoding = 'gbk'
        resp1 = resp.text
        # print(resp1)
        obj = re.compile(r'<a href="/desk/(?P<id>.*?).htm" title="(?P<name>.*?)" target', re.S)
        alist = obj.finditer(resp1)
        for a in alist:
            id = a.group("id")
            name = a.group("name")
            # print(id,name)
            url = f'http://www.netbian.com/desk/{id}-1920x1080.htm'
            # print(url)
            img_resp = requests.get(url)
            # print(img_resp.text)
            img_resp_text = img_resp.text
            # print(img_resp_text)
            child_page = BeautifulSoup(img_resp_text, "html.parser")
            p = child_page.find("td", align="left")
            img = p.find("img")
            src = img.get("src")
            img_resp = requests.get(src)
            ''''''
            obj1 = re.compile(r'<tr><td align="left">.*"(?P<Url>.*?)" title', re.S)
            url2 = obj1.findall(img_resp_text)
            # print(url2)

            with open('img//' + f'{imgtype}//' + name + '.jpg', mode="wb") as f:
                f.write(img_resp.content)
            print("oveer!")
            time.sleep(0.1)


#窗口界面
window = tk.Tk()
window.title('bi_an'),window.geometry('600x245+445+400')
tk.Button(window,text='爬取',font=("宋体",40,"bold"),fg='white',bg='#76becc',relief="ridge",command=click_button).pack(expand=True, fill="both", padx=30, pady=10, side="left")
name_label1 = tk.Label(window, text='图片类型', font=('calibre', 10, 'bold'))
name_label1.pack()
message = tk.Entry(window,font=("宋体",28,"bold"),relief="ridge")
message.pack()
name_label2 = tk.Label(window, text='爬取始页', font=('calibre', 10, 'bold'))
name_label2.pack()
message1 = tk.Entry(window,font=("宋体",28,"bold"),relief="ridge")
message1.pack()
name_label3 = tk.Label(window, text='爬取末页', font=('calibre', 10, 'bold'))
name_label3.pack()
message2 = tk.Entry(window,font=("宋体",28,"bold"),relief="ridge")
message2.pack()
window.mainloop()

yuanma.txt (2.39 KB, 下载次数: 37)

免费评分

参与人数 7吾爱币 +10 热心值 +6 收起 理由
yk2575173948 + 1 + 1 热心回复!
Bmynldm + 1 + 1 用心讨论,共获提升!
Alive47 + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
hututu739 + 1 + 1 热心回复!
Ifyoulike + 1 用心讨论,共获提升!
HuaLiang + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Greennova 发表于 2022-11-23 08:25
大白baymax 发表于 2022-11-22 17:01
这个提示怎么办的楼主大大

服务器无法响应,可能是那边服务器出问题了,也可能是你一次性爬取太多,速度太快那边服务器响应不过来等等,如果IP没有被封的条件下,应该过一段时间再爬就可以
大白baymax 发表于 2022-11-23 08:27
Greennova 发表于 2022-11-23 08:25
服务器无法响应,可能是那边服务器出问题了,也可能是你一次性爬取太多,速度太快那边服务器响应不过来等 ...

好的 谢谢楼主大大
HuaLiang 发表于 2022-11-15 23:35
wushouwen 发表于 2022-11-15 23:49
一直想找这种
Ifyoulike 发表于 2022-11-16 00:19
太帅了三,这下子我感觉自己又行就,,
laoda1228 发表于 2022-11-16 06:46
这个可以有,下载学习一下。
hemingway111 发表于 2022-11-16 08:47
谢谢分享,学习了
aceronethree 发表于 2022-11-16 09:42

谢谢分享
wilburking 发表于 2022-11-16 12:02
谢谢分享,认真学习中
苏紫方璇 发表于 2022-11-16 14:04
帖子中粘贴代码可以参考这个帖子
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thread-713042-1-1.html
(出处: 吾爱破解论坛)
Alive47 发表于 2022-11-16 16:41
厉害,学习学习,膜拜
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 02:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表