前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python一行命令将我们的电脑作为服务器(续)

python一行命令将我们的电脑作为服务器(续)

作者头像
叶子陪你玩
发布2022-05-22 14:58:53
7270
发布2022-05-22 14:58:53
举报

上一篇 python一行命令将我们的电脑作为服务器,本来只是随便分享一下,真实用的不多。

不过有点意思同学提的两个问题挺好,根据这两个问题,我也做了小demo,分享一下思路。

核心就是在客户端写个程序,将从服务器爬取到的内容做一个展示处理,便于查看和下载。


本地测试路径文件:

代码语言:javascript
复制
│  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地址进行网页访问。(上面的图片是之前文章的,所以地址不同,懒的换了)

写个爬虫代码,递归所有的路径。

代码语言:javascript
复制
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有很多库可以使用,有后台那就更简单了,网页上直接放个上传按钮即可。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档