proxy_pool开源项目攻克学习

开源项目攻克学习之proxy_pool

1. 学习背景

爬虫线程池,但是网络上付费的又很麻烦,于是在开源网站上找到一个版本进行学习。

https://github.com/jhao104/proxy_pool

本人操作系统deepin,有遇到一些问题,希望可以跟大家分享一下。

2. 学习路程是我个人安装时候踩的坑。

3. 总结安装可以参考总结安装的顺序进行安装。


2. 学习路程

step1. 下载

首先是进行代码下载,没啥好说的

git clone https://github.com/jhao104/proxy_pool.git

如果下载速度慢的话,作者还给了release源码下载,源码地址如下,下载zip或者tar.gz格式都可以。

https://github.com/jhao104/proxy_pool/releases/tag/2.4.0

step2. 准备python环境

有两种方法:

  • 一种是准备单独的python环境

  • 另一种是配置虚拟机

准备一个单独的python环境,我没用虚拟机,而是基于我原来的一个教程,重新build了一个python版本。

环境准备如下linux环境下安装多个任意版本的python环境

我准备的环境是python3.7.11

~/proxy_pool-2.4.0$ python3711
Python 3.7.11 (default, Aug 26 2021, 02:56:09) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

step3. 根据教程安装依赖

~/proxy_pool-2.4.0$ pip3711 install -r requirement -i https://pypi.tuna.tsinghua.edu.cn/simple/

等待安装完成有一些告警,但我不知道有什么影响。

WARNING: The script flask is installed in '/home/rodney/.local/bin' which is not on PATH.Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.WARNING: The script chardetect is installed in '/home/rodney/.local/bin' which is not on PATH.Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.WARNING: The scripts gunicorn and gunicorn_paster are installed in '/home/rodney/.local/bin' which is not on PATH.Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

step4. 开始启动程序 + 解决报错问题:安装redis

# 启动调度程序
python proxyPool.py schedule# 启动webApi服务
python proxyPool.py server

发现报错了,说是这个问题

redis.exceptions.ConnectionError: Error 111 connecting to 172.16.8.128:6379. Connection refused.

上网查询了一下是没有安装redis的问题(原来requirement.txt的只是个接口。。。)解决思路就两行。。。

然后去查找了一下redis的安装方法

因为我是deepin系统,和ubuntu类似,直接用apt-get安装即可(下次在服务器上安装时候再研究centos的)

sudo apt-get install redis

安装完成后,他的配置文件在如下位置,我们可以打开看下,但不用修改。

/etc/redis/redis.conf 

利用apt-get安装后,可以直接用命令启动redis服务器,第一次进去需要设置密码,否则不能用。

参考资料:

NOAUTH Authentication required 解决办法

redis远程访问

Python连接redis

# 启动redis服务器
$ redis-server# 给他配置密码
redis-cli
127.0.0.1:6379> set key pwd127.0.0.1:6379> get key127.0.0.1:6379> config set requirepass "123456"127.0.0.1:6379> auth "123456"127.0.0.1:6379> ping
pong

step5. 修改setting.py

然后继续按教程走,

HOST 不用改,PORT也可以不用改,这是你flask打开的默认地址,

数据库需要改一下,pwd改成你刚才设置的"123456"或者你自己设置的值。

端口改成6379。因为我们没有改redis-server的地址。

其他的不用动。然后再启动python脚本。

# setting.py 为项目配置文件# 配置API服务HOST = "0.0.0.0"               # IP
PORT = 5000                    # 监听端口# 配置数据库DB_CONN = 'redis://:pwd@127.0.0.1:8888/0'# 配置 ProxyFetcherPROXY_FETCHER = ["freeProxy01",      # 这里是启用的代理抓取方法名,所有fetch方法位于fetcher/proxyFetcher.py"freeProxy02",# ....
]

step6. 启动程序 + 第二次解决问题

# 启动调度程序
python proxyPool.py schedule# 启动webApi服务
python proxyPool.py server

第一个schedule能正常执行了,但是执行server时候报错,错误内容如下:

Traceback (most recent call last):File "proxyPool.py", line 43, in <module>cli()File "/home/rodney/.local/lib/python3.7/site-packages/click/core.py", line 764, in __call__return self.main(*args, **kwargs)File "/home/rodney/.local/lib/python3.7/site-packages/click/core.py", line 717, in mainrv = self.invoke(ctx)File "/home/rodney/.local/lib/python3.7/site-packages/click/core.py", line 1137, in invokereturn _process_result(sub_ctx.command.invoke(sub_ctx))File "/home/rodney/.local/lib/python3.7/site-packages/click/core.py", line 956, in invokereturn ctx.invoke(self.callback, **ctx.params)File "/home/rodney/.local/lib/python3.7/site-packages/click/core.py", line 555, in invokereturn callback(*args, **kwargs)File "proxyPool.py", line 39, in serverstartServer()File "/home/rodney/Open_Source/py_github/proxy_pool_dl/proxy_pool-2.4.0/helper/launcher.py", line 25, in startServerfrom api.proxyApi import runFlaskFile "/home/rodney/Open_Source/py_github/proxy_pool_dl/proxy_pool-2.4.0/api/proxyApi.py", line 20, in <module>from flask import Flask, jsonify, requestFile "/home/rodney/.local/lib/python3.7/site-packages/flask/__init__.py", line 21, in <module>from .app import Flask, Request, ResponseFile "/home/rodney/.local/lib/python3.7/site-packages/flask/app.py", line 25, in <module>from . import cli, jsonFile "/home/rodney/.local/lib/python3.7/site-packages/flask/json/__init__.py", line 21, in <module>from itsdangerous import json as _json
ImportError: cannot import name 'json' from 'itsdangerous' (/home/rodney/.local/lib/python3.7/site-packages/itsdangerous/__init__.py)

研究一下啊发现应该是flask库内部导包出现问题。因为webapi依赖flask,而调度程序不依赖flask

这里我尝试将flask的库从1.0.0改为2.0.0解决问题

$ pip3711 install Flask==2.0

最终的执行结果如下:
在这里插入图片描述

在这里插入图片描述

step7. 其他的错误以及debug

如果出现如下错误,请重启redis服务器。

$ redis-server

在这里插入图片描述


3.总结安装Proxy_pool的顺序过程

1. 准备环境

  • python环境 -> step2
  • redis服务器 -> step4

2. 下载安装开源代码

  • 下载开源代码 -> step1

  • 安装开源代码的依赖 -> step3

  • 配置setting -> step5

3. 启动proxy_pool

  • 根据启动命令启动代理池服务 python proxyPool.py server

4. 问题定位

  • 遇到Flask包导包问题可以考虑重装Flask版本
  • 遇到连接失败connection error通常是redis服务器没打开,可以考虑重新打开

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Keil_uvision_4基本使用教程

前言&#xff1a; keil uvision 5 和 4 使用方式差不多 Keil_uvision_4基本使用教程 Keil C51 V9.00 即09年发布的最新版本uVision 4&#xff0c;版本外观改变比较大 可以使用以前的注册文件如果全新安装&#xff0c;在VISTA或者WIN 7系统下…

部门名称部门结构叠用_金属结构分公司三部门联合开展工会小组活动

为丰富职工的业余生活&#xff0c;营造轻松欢乐的氛围&#xff0c;增强部门间交流沟通&#xff0c;舒缓职工工作压力&#xff0c;在金属结构分公司工会的支持下&#xff0c;9月12日&#xff0c;分公司工程管理部、安全监管部和综合办公室联合开展工会小组活动&#xff0c;分公司…

不是区块链的特征_上市公司日照港物流区块链平台上线,不是谁都能玩“区块链+物流”?...

免责声明&#xff1a;本文旨在传递更多市场信息&#xff0c;不构成任何投资建议。文章仅代表作者观点&#xff0c;不代表火星财经官方立场。小编&#xff1a;记得关注哦投资区块链&#xff0c;猛戳&#xff1a;火星财经App下载来源&#xff1a;火星一线文 | 成文厚火星财经APP(…

lg手机历史机型_华为后,又一中国芯崛起!国际手机巨头LG都采用它的芯片了...

众所周知&#xff0c;这几年芯片火热&#xff0c;中国芯片厂商们也是受到了大家空前的关注。任何有关于中国芯的利好&#xff0c;都会被放大&#xff0c;被网友们看好。当然&#xff0c;华为是中国这些芯片企业中最强的&#xff0c;5G芯片华为也是目前最领先的&#xff0c;像巴…

Java学习资料汇总

Java语言特点和常见错误1 Java语言特点总结1.1 语言特点1.2 运行机制1.3 JVM虚拟机1.4 JRE运行环境1.5 JDK开发环境Linux下的java安装,编译,运行三大引用类型1 Java语言特点总结 这段内容来自北大唐教授的教案 1.1 语言特点 • 无直接指针操作 • 自动内存管理 • 数据类型长…

windows环境下安装多个任意版本的python环境

windows环境下安装多个任意版本的python环境windows环境下安装多个任意版本的python环境下载Python下载pipstep1. 用get-pip下载pipstep2. 分析安装的文件step3. 使用pip得到报错" No module named pip "step4. 原因分析和解决方案其他报错1. ERROR: Could not find …

2022年新版Pycharm通过project interpreter国内镜像源设置

2022年新版Pycharm通过project interpreter国内镜像源设置解决方案速览一、国内镜像源列表二、pycharm访问project interpreter解决方案速览 File->Settings->project interpreter-> -> Available Packages将options打勾&#xff0c;并输入-i https://pypi.tuna.…

flink 不设置水印_从0到1学习Flink—— Flink parallelism 和 Slot 介绍

前言之所以写这个是因为前段时间自己的项目出现过这样的一个问题&#xff1a;1Caused by: akka.pattern.AskTimeoutException: 2Ask timed out on [Actor[akka://flink/user/taskmanager_0#15608456]] after [10000 ms]. 3Sender[null] sent message of type "org.apache.…

cad设计院常用字体_趣谈 | 那些年我们看过的电气图纸(附CAD/EPLAN区别)

电气二次回路图是我们工作中必不可少的内容&#xff0c;形形色色的图纸我们见过很多&#xff0c;小编就下面额图纸和大家分享一下&#xff0c;仅作为个人观点&#xff0c;大家的意见可在留言区补充哦&#xff01;先看看几张老外额图纸吧&#xff0c;譬如ABB、GE&#xff0c;但并…

centos写mysql光标移到上一行_mysql:一条SQL更新语句(update)是如何执行的

一条更新语句的执行流程又是怎样的呢&#xff1f;之前你可能经常听DBA同事说&#xff0c;MySQL可以恢复到半个月内任意一秒的状态&#xff0c;惊叹的同时&#xff0c;你是不是心中也会不免会好奇&#xff0c;这是怎样做到的呢&#xff1f;我们还是从一个表的一条更新语句说起&a…

小米wifi每天晚上准时断网_小米 11再次确定,将于28日准时发布,售价更感人

今天是12月25日&#xff0c;在28日晚上&#xff0c;小米 11将准时发布。如今&#xff0c;关于小米 11的消息已经越来越多&#xff0c;小米官方也已经确定了不少配置&#xff0c;同时&#xff0c;小米 11的售价也已经有爆料出现。根据爆料消息显示&#xff0c;小米 11此次或为45…

opengl 深度详解_一步步学OpenGL(23) -《阴影贴图1》

教程 23阴影贴图1原文&#xff1a; http://ogldev.atspace.co.uk/www/tutorial23/tutorial23.htmlCSDN完整版专栏&#xff1a; https://blog.csdn.net/cordova/article/category/9266966背景阴影和光是紧密联系的&#xff0c;正如你需要光才能投射出阴影。有许多的技术可以生成…

ug后处理如何加密_UG在NX加工中如何添加后处理文件?

在使用UG加工中&#xff0c;往往使用的机床不一样就要特定后处理文件&#xff0c;那么如何在UG中添加之前制定好的后处理文件呢&#xff1f;下面以UG8.5为例来说明。1、首先确认UG后处理文件是否完整。完整的后处理文件包括后缀为.def、.pui和.tcl的三个文件&#xff08;注&…

华为mstp多生成树配置_网络工程师(30):多实例生成树如何计算

多实例生成树MSTP包括域间的外部生成树CST和域内的内部生成树IST&#xff0c;我们通称为CIST。我们先讨论CST的计算。在CST中&#xff0c;一个MST域看作是一台"交换机"&#xff0c;那么在进行CST计算时&#xff0c;这台"交换机"的桥ID是多少呢&#xff1f;…

url中能出现的字符_python爬虫,解决大众点评字符库反爬机制的经验

刚开始写文章还希望大家可以喜欢&#xff0c;对于爬虫只是个人整理出的方法&#xff0c;爬虫大牛请嘴下留情。“”仅限学术交流&#xff0c;如有冒犯请联系作者删除“”话不多说&#xff0c;想分析天津地区餐饮行业的大致情况&#xff0c;要爬出&#xff08;商铺名称&#xff0…

上课点名app_【APP种草】网瘾少年的自我救赎之最强锁机软件

相信在这个魔幻的2020&#xff0c;大家都经历了很多个不寻常吧。作为学生党&#xff0c;算是圆梦了在家学习的愿望&#xff0c;可当这一切都变成现实的时候&#xff0c;也还是没逃过点名、没逃过网课&#xff0c;这不&#xff0c;连期末考也又双叕叕地来了。作为一名需要在家完…

qrcode生产带logo_比亚迪换新标?新Logo的含义你了解吗?

对于许多制造业品牌来说&#xff0c;由于时代发展的速度太快&#xff0c;科技的力量进步太快&#xff0c;即便是规模庞大的老牌企业&#xff0c;也需要不断改变自己&#xff0c;以此来适应社会的改变求得生存。这就意味着&#xff0c;无论是什么品牌&#xff0c;都需要定期改变…

超前进位加法器实验报告_干货 | 加法器与反相加法器原理解析

什么是加法器加法器是为了实现加法的&#xff0c;即是产生数的和的装置。加数和被加数为输入&#xff0c;和数与进位为输出的装置为半加器。若加数、被加数与低位的进位数为输入&#xff0c;而和数与进位为输出则为全加器。常用作计算机算术逻辑部件&#xff0c;执行逻辑操作、…

php 支付宝小程序授权登陆验签_星巴克“啡快”登陆支付宝小程序,让你“飞快”取到咖啡...

当代年轻人的生活方式是怎样的&#xff1f;靠地铁通勤&#xff0c;靠咖啡续命早上睁不开眼&#xff0c;咖啡来一杯中午昏昏欲睡&#xff0c;咖啡来一杯晚上熬夜加班&#xff0c;咖啡来一杯喝完这杯&#xff0c;还有一杯“宁可食无肉&#xff0c;不可早无星”是当代年轻人的座右…

python导入同一文件夹下的类_python自定义模块

模块的引入方式&#xff1a;1.import 模块名&#xff1a;导入模块中的所有内容&#xff08;引入多个用逗号分隔&#xff09;import random,time2.from 模块名 import 函数名1&#xff0c;函数名2...导入部分模块&#xff08;导入部分的话直接使用&#xff09;3.from 模块名 imp…