iannil
2015-11-09 18:03:41 +08:00
做过类似的东西,简单列一下,供参考。
1 、你需要一个能完善处理 Cookie 、 Header 、 Web 代理、编码、 HTTP 的各类请求的库。用哪个语言开发就用哪个语言的库,这种库很多,选 github 上 star 最多的一般就够用了。
2 、你需要类似 fiddler 的数据包截获的工具, chrome 或 firefox+firebug 中的一个。这用来获得 HTTP 请求和响应的数据内容。
3 、构造 HTTP 请求。
4 、在一些公开代理的网站上获取代理,并做成 IP 池进行管理。
5 、建立并实现发布规则,例如什么情况下切换 IP ,如何产生发布的任务,发布的数据从哪来。针对这些数据来源,你可能需要一个爬虫或管理后台,来产生预备发布的数据。(如果你要发随机产生的垃圾数据,这条可以忽略)
6 、让你的发布器和数据源做好通讯,用 API 之类的方式就可以。
7 、为你的发布器设置运行规则,如定时执行还是实时执行?并发数多少?
8 、构造具体发布的规则,如发布 A 网站是否需要登录?是否需要缓存?
下面是一些扩展:
9 、遇到 Javascript 混编加密的网站,光登录你就需要处理并解释 Javascript ,如 58 同城,你需要一个 Javascript 解释器去解释执行遇到的 Javascript 。
10 、遇到验证证书的 HTTPS 加密,你需要设置代理。
11 、遇到验证码,你需要 OCR 或找云打码平台或自己输入。
就这么多吧,构造一个普通的发布器基本够用了。