爬取别人网站的优选反代IP
爬取别人网站的优选反代IP
First环境准备
# 安装Nginx |
构建
- 创建项目文件夹:
在服务器上选择一个适当的位置,例如/var/www/myflaskapp
,并在该目录下创建一个新的文件夹:sudo mkdir /root/myflaskapp
- 进入项目文件夹:
使用cd
命令进入新创建的文件夹:cd /var/www/myflaskapp
- 创建虚拟环境:
为了隔离你的应用程序环境,建议在项目文件夹内创建一个虚拟环境。使用以下命令:sudo apt-get install python3-venv # 安装虚拟环境工具
python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate # 激活虚拟环境 - 安装 Flask 和其他依赖:
在虚拟环境中安装 Flask 和其他必要的依赖:pip install flask requests beautifulsoup4
- 创建 Flask 应用程序文件:
在项目文件夹中创建一个名为app.py
的文件,并将下面的 Flask 应用程序代码复制到该文件中。from flask import Flask, render_template
import requests
from bs4 import BeautifulSoup
app = Flask(__name__)
def get_ips():
try:
# 抓取目标网页的内容
url = 'https://proxy-ip.030101.xyz/bestip'
response = requests.get(url)
response.raise_for_status() # 检查是否有网络请求错误
# 提取IP地址
ips = []
lines = response.text.split('\n')
for line in lines:
if '.' in line: # 简单判断是否包含点,作为 IP 地址的标志
ips.append(line.strip())
return ips
except Exception as e:
# 处理异常情况,例如网络请求失败或解析错误
print(f"Error: {e}")
return []
@app.route('/')
def index():
# 获取实时的IP地址
ips = get_ips()
return render_template('index.html', ips=ips)
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000) - 创建模板和静态文件夹:
在项目文件夹中创建一个名为templates
的文件夹,然后在其中创建index.html
文件。同时,创建一个名为static
的文件夹用于存放 CSS 或其他静态文件。mkdir templates
touch templates/index.html
mkdir static - 运行 Flask 应用程序:
回到项目文件夹,确保虚拟环境已激活,然后运行 Flask 应用程序:你应该会看到输出表明 Flask 应用程序正在运行。你可以访问cd /root/myflaskapp
source myenv/bin/activate
python app.pyhttp://your-server-ip:5000/
来查看应用程序是否正常运行。如果一切正常,你应该能够在页面上看到从https://proxy-ip.030101.xyz/bestip
提取的 IP 地址。 - 设置 Nginx 反向代理:
为了使你的 Flask 应用程序能够通过标准的 HTTP 端口(80)访问,你可以设置 Nginx 反向代理。编辑 Nginx 配置文件(通常位于/etc/nginx/sites-available/default
),在server
部分添加以下配置:server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /ipv4/ {
proxy_pass http://127.0.0.1:5000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 其他可能的配置...
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
} - 重启 Nginx:
保存 Nginx 配置文件后,重启 Nginx 以使更改生效:sudo systemctl restart nginx
- 创建一个 Systemd 服务文件:
创建一个名为myflaskapp.service
的文件,用于定义你的 Flask 应用程序服务。可以在/etc/systemd/system/
目录下创建这个文件,并写入以下内容:[Unit]
Description=My Flask App
After=network.target
[Service]
ExecStart=/root/myflaskapp/myenv/bin/python /root/myflaskapp/app.py
WorkingDirectory=/root/myflaskapp/
Environment="FLASK_ENV=production"
Environment="FLASK_APP=app.py"
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target - 重载 Systemd 并启动服务:
保存并关闭文件后,重新加载systemd
并启动你的服务:sudo systemctl daemon-reload
sudo systemctl start myflaskapp - 设置开机自启动:
如果你希望在服务器启动时自动启动你的 Flask 应用程序服务,可以使用以下命令:现在,每次服务器重启后,你的 Flask 应用程序服务都会自动启动。sudo systemctl enable myflaskapp
- 查看服务状态:
你可以使用以下命令查看服务的状态:sudo systemctl status myflaskapp
评论
匿名评论隐私政策