配置环境概诉:
windos10
python 3
node.js -- npm环境
后话前说
除了pip安装还有两种方式
(一)、基于官方文档的方式三+正向代理服务器功能
基于官方文档的方式三下载完整项目在本地运行, 并使用curl和request集成的正向代理服务器功能获取代理ip,
实际发现, 方式三+ 正向代理服务器虽然能够成功获取代理ip , 但是大部分代理ip不能用, 所以最终改为windos下docker部署并接口获取代理ip
巨坑, 请跳过下面有关 方式三+ 正向代理服务器 的配置
(二)、官网方式一(docker部署) + API接口
使用docker部署, 接口方式获取代理ip
推荐使用这种方式, 但本人 (一) 配置失败后发现ip可用性不高就放弃了scylla, 所以没再继续配置下去
scylla 简介
scylla 是一款高质量的免费代理 IP 池工具,仅支持 Python 3.6。特性如下:
- 自动化的代理 IP 爬取与验证
- 易用的 JSON API
- 简单但美观的 web 用户界面,基于 TypeScript 和 React(例如,代理的地理分布)
- 最少仅用一条命令即可启动
- 简明直接的编程 API(将在 1.1 版本中加入)
- 最少仅用一行代码即可与 Scrapy 和 requests 进行集成
- 无头浏览器(headless browser crawling)爬虫
注意: 暂不支持https
(一)、scylla完整项目部署+正向代理服务器功能
由于本人使用方式二,pip安装时自动部署一个附属组件pycurl时出错:
Command "python setup.py egg_info" failed with error code 10 in C:\Users\Public\Documents
\Wondershare\CreatorTemp\pip-install-2vh3p5oi\pycurl\
墙内墙外都找遍了也没有解决方案, 所以以下讨论方式三、通过github下载整个项目, 修改其requirements.txt文件使其不再自动部署pycurl避免出错, 运行该项目从而搭建本地正向代理ip池。
前置工作:
升级pip和setuptools工具。
pip install --upgrade setuptools
python -m pip install --upgrade pip
手动下载pycurl组件包:
这一步主要是因为在windos上安装scylla 都会在自动下载pycurl上出错, 我们这里先将其手动下载并安装。下载地址: 插件库中选pycurl 64版本最新一个
下载后将文件放到python安装目录(如果是虚拟环境, 则为虚拟环境的Scripts目录),和pip.exe同一目录
然后使用pip 安装
//cd 到pip.exe和下载文件都在的python安装目录
//如果是虚拟环境, 则为虚拟环境的python安装目录
cd C:\Users\LittleTrue\AppData\Local\Programs\Python\Python37\
//然后使用pip 安装
pip install [下载第三方模块的文件名] //我下载的是pycurl-7.43.1-cp37-cp37m-win_amd64.whl
提示successfull则安装pycurl成功, 能够避免scylla 自动安装时失败。
下载并构建项目:
git clone https://github.com/imWildCat/scylla.git
cd scylla
//在scylla下requirements.txt文件修改pycurrl版本为你前置工作中下载并安装的版本
pip install -r requirements.txt
npm install
make build-assets //本步不执行则访问不了部署在本地的web界面, 但是curl和正向代理访问获取依然可以获取代理ip
运行项目:
cd 到scylla项目
python -m scylla
//python3 -m scylla
服务运行在本地(localhost),使用口号 8899。
每次运行本项目时,需要等待 1~2 分钟以爬取一定量的代理 IP。
图片.png
获取项目的代理ip:
curl获取
curl http://api.ipify.org -x http://127.0.0.1:8081
图片.png
集成在request项目中
requests.get('http://api.ipify.org', proxies={'http': 'http://127.0.0.1:8081'})
图片.png
网友评论