Python之自动爬取每日bing壁纸并更换
今天,我们来研究——Python自动爬取每日bing壁纸
说到Python想必大家对这个编辑器并不陌生。当然,最出名的,也就是他的爬虫了
咳咳咳…….这里我就不详细逐一介绍了,我们直接开门见山
一、你需要准备
- Python编译器
- Pycharm(有条件者可以去官网买)
- Pyinstaller,requests第三方库
二、使用Python自带的pip进行安装库
- 同时摁下win+r键,输入cmd进入提示命令符
- 输入 pip install ******
Tip: *号处可使用任何要按照第三方库的名称
这里只安装:requests和pyinstaller
三、函数__photo__.py爬取必应每日一图
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import reimport requestsimport datetimefrom __computerbackground__ import __computerbackground__import osdef __photo__( ): url = 'https://www.bing.com/' html = requests.get(url).text #获取这个网页源码 Nurl = re.findall('id="bgLink" rel="preload" href="(.*?)&',html,re.S) #正则表达式写好 for temp in Nurl: #循环获取里边的图片,其实这里只有一个 url = 'https://www.bing.com' + temp #print(url) pic = requests.get(url) a=(os.path.dirname(__file__) ) #获取当前路径 #接着把图片保存下来,再提前准备一个Photo目录用来存放 name = str(datetime.datetime.now().year)+'-'+str(datetime.datetime.now().month)+'-'+str(datetime.datetime.now().day) + '.jpg' file=a+'/Photo'+'/'+name #建立保存的绝对地址 #print(file) while True: try: fp = open(file, 'wb') fp.write(pic.content) fp.close() # 保存图片到Photo这个文件夹 print('已将图片保存于', file) break except: print('发生错误!!请检查是否在', a, '中创建Photo名称的文件夹') b = input('创建确定请输入1:') #保存图片到 |
Tip:如果显示报错,你必须在运行本脚本的目录中创建一个Photo的文件夹,不然将无法保存!!
三、函数__computerbackground__.py更换壁纸
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
import ctypesimport datetimeimport timeimport osdef __computerbackground__(): #print(os.path.dirname(__file__)) a=(os.path.dirname(__file__) ) name=str(datetime.datetime.now().year)+'-'+str(datetime.datetime.now().month)+'-'+str(datetime.datetime.now().day) + '.jpg' time.sleep(1) file=a+"/Photo"+"/"+name #print(file) ctypes.windll.user32.SystemParametersInfoW(20, 0,file, 0) #替换壁纸 print('更换成功') |
Tip:没有安装上ctypes库的将无法使用
三、主程序photo_get.py调用函数
[Python] 纯文本查看 复制代码
|
1
2
3
|
from __photo__ import __photo__if __name__=='__main__': __photo__() |
四、打包exe
- 同时摁下win+r键,输入cmd进入提示命令符
- 输入 cd D:/****** (注意:**处即为脚本photo_get.py运行所在文件夹)
- 输入pyinstaller -D photo_get.py
[PHP] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
Microsoft Windows [版本 10.0.17134.1304](c) 2018 Microsoft Corporation。保留所有权利。(venv) D:\Pycharm 2020.3>pyinstaller -D photo_get.py1465 INFO: PyInstaller: 4.21465 INFO: Python: 3.8.31465 INFO: Platform: Windows-10-10.0.17134-SP01465 INFO: wrote D:\Pycharm 2020.3\photo_get.spec1513 INFO: UPX is not available.1545 INFO: Extending PYTHONPATH with paths['D:\\Pycharm 2020.3', 'D:\\Pycharm 2020.3']1705 INFO: checking Analysis1713 INFO: Building Analysis because Analysis-00.toc is non existent1713 INFO: Initializing module dependency graph...1729 INFO: Caching module graph hooks...1785 WARNING: Several hooks defined for module 'win32ctypes.core'. Please take care they do not conflict.1825 INFO: Analyzing base_library.zip ...7761 INFO: Processing pre-find module path hook distutils from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks\\pre_find_module_path\\hook-distutils.py'.7785 INFO: distutils: retargeting to non-venv dir 'D:\\Python3.8\\lib'12161 INFO: Caching module dependency graph...12417 INFO: running Analysis Analysis-00.toc12497 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable required by d:\pycharm 2020.3\venv\scripts\python.exe12609 INFO: Analyzing D:\Pycharm 2020.3\photo_get.py12913 INFO: Processing pre-safe import module hook urllib3.packages.six.moves from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks\\pre_safe_import_module\\hook-urllib3.packages.six.moves.py'.16084 INFO: Processing module hooks...16084 INFO: Loading module hook 'hook-certifi.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...16116 INFO: Loading module hook 'hook-difflib.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...16149 INFO: Excluding import of doctest from module difflib16149 INFO: Loading module hook 'hook-distutils.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...16180 INFO: Loading module hook 'hook-distutils.util.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...16180 INFO: Excluding import of lib2to3.refactor from module distutils.util16180 INFO: Loading module hook 'hook-encodings.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...16710 INFO: Loading module hook 'hook-heapq.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...16710 INFO: Excluding import of doctest from module heapq16718 INFO: Loading module hook 'hook-lib2to3.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...16918 INFO: Loading module hook 'hook-multiprocessing.util.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...16942 INFO: Excluding import of test from module multiprocessing.util16942 INFO: Excluding import of test.support from module multiprocessing.util16942 INFO: Loading module hook 'hook-pickle.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...16966 INFO: Excluding import of argparse from module pickle16966 INFO: Loading module hook 'hook-sysconfig.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...16990 INFO: Loading module hook 'hook-xml.etree.cElementTree.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...16990 INFO: Loading module hook 'hook-xml.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...17102 INFO: Loading module hook 'hook-_tkinter.py' from 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks'...18311 INFO: checking Tree18311 INFO: Building Tree because Tree-00.toc is non existent18311 INFO: Building Tree Tree-00.toc18879 INFO: checking Tree18879 INFO: Building Tree because Tree-01.toc is non existent18879 INFO: Building Tree Tree-01.toc19223 INFO: checking Tree19223 INFO: Building Tree because Tree-02.toc is non existent19223 INFO: Building Tree Tree-02.toc19247 INFO: Looking for ctypes DLLs19287 INFO: Analyzing run-time hooks ...19287 INFO: Including run-time hook 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_multiprocessing.py'19303 INFO: Including run-time hook 'd:\\pycharm 2020.3\\venv\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\rthooks\\pyi_rth_certifi.py'19311 INFO: Looking for dynamic libraries21526 INFO: Looking for eggs21526 INFO: Using Python library D:\Python3.8\python38.dll21526 INFO: Found binding redirects:[]21534 INFO: Warnings written to D:\Pycharm 2020.3\build\photo_get\warn-photo_get.txt21605 INFO: Graph cross-reference written to D:\Pycharm 2020.3\build\photo_get\xref-photo_get.html21654 INFO: checking PYZ21654 INFO: Building PYZ because PYZ-00.toc is non existent21654 INFO: Building PYZ (ZlibArchive) D:\Pycharm 2020.3\build\photo_get\PYZ-00.pyz22502 INFO: Building PYZ (ZlibArchive) D:\Pycharm 2020.3\build\photo_get\PYZ-00.pyz completed successfully.22517 INFO: checking PKG22517 INFO: Building PKG because PKG-00.toc is non existent22517 INFO: Building PKG (CArchive) PKG-00.pkg22589 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.22589 INFO: Bootloader d:\pycharm 2020.3\venv\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe22589 INFO: checking EXE22589 INFO: Building EXE because EXE-00.toc is non existent22589 INFO: Building EXE from EXE-00.toc22605 INFO: Copying icons from ['d:\\pycharm 2020.3\\venv\\lib\\site-packages\\PyInstaller\\bootloader\\images\\icon-console.ico']22654 INFO: Writing RT_GROUP_ICON 0 resource with 104 bytes22654 INFO: Writing RT_ICON 1 resource with 3752 bytes22661 INFO: Writing RT_ICON 2 resource with 2216 bytes22661 INFO: Writing RT_ICON 3 resource with 1384 bytes22661 INFO: Writing RT_ICON 4 resource with 37019 bytes22661 INFO: Writing RT_ICON 5 resource with 9640 bytes22661 INFO: Writing RT_ICON 6 resource with 4264 bytes22661 INFO: Writing RT_ICON 7 resource with 1128 bytes22685 INFO: Appending archive to EXE D:\Pycharm 2020.3\build\photo_get\photo_get.exe22685 INFO: Building EXE from EXE-00.toc completed successfully.22693 INFO: checking COLLECT22693 INFO: Building COLLECT because COLLECT-00.toc is non existent22693 INFO: Building COLLECT COLLECT-00.toc38948 INFO: Building COLLECT COLLECT-00.toc completed successfully. |
打包完成后,找到dist文件夹中的photo_get文件夹中的photo_get.exe双击即可运行换壁纸
你学会了吗????
如果不会使用,可直接下载下方的打包成品