上一篇 python一行命令将我们的电脑作为服务器,本来只是随便分享一下,真实用的不多。
不过有点意思同学提的两个问题挺好,根据这两个问题,我也做了小demo,分享一下思路。
核心就是在客户端写个程序,将从服务器爬取到的内容做一个展示处理,便于查看和下载。
本地测试路径文件:
│ addquestion.ui
│ dino_auto_play.py
│ pdf破解.py
│ pyautogui_demo.py
│ t1.jpg
│
├─dir1
│ │ fangzheng.TTF
│ │ student_list.json
│ │ 加油.png
│ │ 试卷.docx
│ │ 课程练习工具.py
│ │ 课程题目配置文件.json
│ │
│ └─__pycache__
│ ui_lesson.cpython-37.pyc
│ ui_test.cpython-37.pyc
│
├─dir2
│ enter.jpg
│ Wireshark_Intro_v8.0.pdf
│ 破解pdf密码.py
│
└─dir3
student_list.json
ui_testpaper.py
尤燕-试卷.docx
徐杰-试卷.docx
批量生成试卷.py
曹帅-试卷.docx
安装python环境后,打开命令行,通过python -m http.server一行代码将电脑作为服务器启动,启动时所在的文件路径会作为根路径。
然后查看本机的IP地址。
根据上面查看的ip地址进行网页访问。(上面的图片是之前文章的,所以地址不同,懒的换了)
写个爬虫代码,递归所有的路径。
import os
import requests
from bs4 import BeautifulSoup
import sys
def is_dir(file):
if '/' in file:
return True
return False
def get_files(url):
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')
files = soup.find_all('a')
for a_label in files:
file = a_label.string
if is_dir(file):
print(file, '文件夹')
get_files(url+file)
else:
print(f'{url}{file}')
if __name__ == '__main__':
root_url = 'http://192.168.11.57:8000/'
get_files(root_url)
运行结果:
可以看见,拿到所有资源的地址了,接下来想怎么怎么处理都可以。
比如做个界面:
选中的内容,将其地址显示到右边,然后点击下载按钮就完成了。
后面具体下载懒的写了,思路应该讲清楚了。
上面是通过在客户端写程序解决的,其实在服务器也是可以的,不过要搭个后台,会稍微麻烦一些。
还有读者说要上传,如果只是两个电脑传文件,python有很多库可以使用,有后台那就更简单了,网页上直接放个上传按钮即可。