scylla githubscylla 中文手册配置环境概诉:
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 setuptoolspython -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 自动安装时失败。
按照scylla 中文手册下载并构建项目:
git clone https://github.com/imWildCat/scylla.gitcd scylla//在scylla下requirements.txt文件修改pycurrl版本为你前置工作中下载并安装的版本pip install -r requirements.txtnpm 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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。