花一周的时间初步完成了这个项目…… Github 上好像没有几个(我只找到了一个= =)把 Tornado 和 Scrapy 结合到一起的项目
支持的特性包括:
项目地址: https://github.com/Karmenzind/fp-server
关于代理可用性
爬虫爬取代理时会先检测可用性(包括速度和匿名性),检测完毕后才会入库,不可用的直接抛弃,所以可以安心使用。至于代理性能,我后面会对检测方式进行优化。
关于可存储代理数目
我暂时没有做限制,写这个文章的时候,我本地有一万个活动(可用的)代理。我没有继续爬,因为目前代理来源只有四个,潜力有限。假如有人用的话,后面我会持续增加代理来源。
在 Scrapy 项目中使用
我写了一个可以直接用在 Scrapy 项目里的 middleware。后面有空我会写更多示例代码。
环境要求
项目是在 Archlinux 上开发的,已经测试通过的环境如下:
代码暂时不支持直接在 Windows 上运行,我已經打包好了 Docker 镜像,Windows 用户可以使用 Docker 部署。
推荐 Unix/Linux 用户也使用 Docker 部署,这样是最简单的。
更详细的介绍和使用方法见项目 README。
欢迎提 Bug 和意见给我。
这个服务抓下来代理之后,会基于你的本地网络对代理进行检测(代码戳这里),检测通过后才会入库,而且会周期性自检更新。
目前检测方法还有待优化,但是基本能够保证抓下来的代理都是可用的。当然这个“可用”需要结合“免费”这个前提来看,速度肯定和花钱买的代理没法比……
另外这个项目刚写了一个星期,commits一共二十多条,大家轻喷哈哈哈,我慢慢改进……
1
chroming 2018-06-20 19:21:11 +08:00 via Android
为啥用 tornado 做 server, tornado 相比 sanic 有什么优势吗?
|
2
golmic 2018-06-20 19:24:20 +08:00 via Android
|
7
kingname 2018-06-20 19:44:48 +08:00
大家可以看看 https://github.com/imWildCat/scylla
比楼主这个好用的多。 |
12
kmz OP |
13
glacer 2018-06-20 20:12:58 +08:00
网上抓的免费代理可用率和速度都感人... 不管是公司的活还是自用我都愿意花钱买,至少质量比免费的高不止一档了。
|
15
songjiaxin2008 2018-06-20 20:26:31 +08:00
asyncio 和 tornato 一起使用是不是很酸爽...
|
16
kmz OP @songjiaxin2008 还好,,,基本上没用到 asyncio,,,
和 twisted 结合才酸爽,写的过程碰到了 bug,twisted 一直阻塞,差点就放弃了……现在的解决方法还是曲线救国 = = |
19
kmz OP 改了几个比较大的 bug,,,代码现在比发这个文章的时候靠谱得多了,,,(扶额
|
20
xiaozizayang 2018-06-24 11:37:32 +08:00
我基于 sanic 写了个: https://github.com/howie6879/hproxy 异步
|
21
kmz OP @xiaozizayang 学习了!~
|