python爬虫—学习笔记-3

python爬虫—学习笔记-3

ps:因为本人近一个月住院,文章为队友所著。

此次学习内容为如何搭建服务器

1.打开pycharm,创建目录server

image-20240410173751205

在设置中的Python解释器中安装Flask

image-20240410173803854

image-20240410173815298

image-20240410173819180

2.在创建的server1中输入本节课所学代码

image-20240410173827037

在网页中输入ip 端口号 子目录

本机访问127.0.0.1:5000/子目录

外部访问172.20.122.39:5000/子目录

image-20240410173835557

例如:

image-20240410173843460

3.在servers目录下新建一个目录名为course

image-20240410173852230

在sever1中输入表格划分代码

Spit是分割符

image-20240410173902575

保存并运行代码

image-20240410173910091

4.在servers目录下新建一个templates的目录并在其中建h1文件

image-20240410173916805

在h1文件中编写代码

image-20240410173923217

在server1中编写代码保证代码运行流畅,实现网页间的闭环串联

image-20240410174009819

image-20240410173939653

5.网站访问于频繁,加入黑名单

image-20240410173951773

输入限制访问代码 如5次后限制访问,在网页中刷新五次

image-20240410174025502

出现此网页证明能够成功

6.移出黑名单,使用户可以继续访问

输入代码

image-20240410174034005

刷新五次

image-20240410174052790

重启服务器,再次刷新

image-20240410174058398

证明代码可行

完整代码

import flask

app = flask.Flask(__name__)

def maketable(filename):
s = "<table border='1'>"
s = s + "<tr>"
with open(filename,mode='r',encoding='utf-8') as f:
rows = f.readlines()
for row in rows:
cells = row.split(',')
for cell in cells:
s = s + "<td>"
s = s + cell
s = s + "</td>"
s += '</tr>'
s += '</table>'
s += '<a href="/">返回首页</a>'
return s

blacklist=[]
temp = {'127.0.0.1':1}

def checkip():
userip = flask.request.remote_addr
if userip in blacklist:
return 1
else:
if userip in temp:
temp[userip] += 1
if temp[userip] > 5:
blacklist.append(userip)
if len(blacklist) >5:
blacklist.clear()
temp.pop(userip)

else:
temp[userip] = 1

return 0

@app.route("/")
def index():
return flask.render_template('h1.html')

@app.route("/student")
def stuifo():
if checkip() == 0:
return maketable('student.txt')
else:
return "你的访问过于频繁,稍后再试……"

@app.route("/course")
def curinfo():
return maketable('course.txt')

app.run(host="0.0.0.0",debug=True)

posted @ 2024-04-10 17:42  wind风语  阅读(5)  评论(0编辑  收藏  举报