Windows11 下运行 proxyPool 记录
配置环境
本文的 ProxyPool 指的是 jhao104/proxy_pool: Python爬虫代理IP池(proxy pool) (github.com) 这个项目,它可以爬取代理网站上提供的公开代理,并在本地启动一个服务作为代理池使用。
注:项目推荐的 Python 版本为 3.6,读者如果遇到了无法解决的问题,可重新安装 Python 3.6 后重试!
我的本地环境:Windows 11,Python 3.10,Redis for Windows 5.0.14.1
项目需要 Redis ,先去 Releases · tporadowski/redis (github.com) 下载,解压后打开 redis-server.exe 即可(注:如果是公网环境,记得设置复杂密码~)
然后修改配置,打开 setting.py
,将数据库连接改好。
# ############### database config ###################
# db connection uri
# example:
# Redis: redis://:password@ip:port/db
# Ssdb: ssdb://:password@ip:port
DB_CONN = 'redis://127.0.0.1:6379/0'
安装依赖:
# 项目根目录下
pip install -r requirements.txt
启动项目:
# 启动调度程序
python proxyPool.py schedule
# 启动webApi服务
python proxyPool.py server
报错 1:ImportError: cannot import name ‘Markup’ from ‘jinja2’
python .\proxyPool.py server
启动服务报错
ImportError: cannot import name ‘Markup’ from ‘jinja2’ (C:\Users\XXXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\jinja2__init__.py)
解决方法:pip install Flask==2.1.1
安装指定版本 Flask
报错 2:ImportError: cannot import name ‘MutableMapping’ from ‘collections’
python .\proxyPool.py schedule
启动调度程序报错
ImportError: cannot import name ‘MutableMapping’ from ‘collections’
参见 Python的文档说明
Deprecated since version 3.3, will be removed in version 3.10: Moved Collections Abstract Base Classes to the
collections.abc
module. For backwards compatibility, they continue to be visible in this module through Python 3.9.
解决方法:
打开报错的文件(C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\apscheduler\schedulers\base.py),修改 from collections import MutableMapping
为 from collections.abc import MutableMapping
即可。
修改过重新运行,还有个同样的报错,根据报错信息找到 C:\Users\XXXXX\AppData\Local\Programs\Python\Python310\lib\site-packages\apscheduler\job.py 文件再修改一次即可。
重新启动项目,已经可以正常运行 ✅
参考:
python - cannot import name 'MutableMapping' from 'collections' - Stack Overflow
Release Redis for Windows 5.0.14.1 · tporadowski/redis (github.com)