Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

思路 很好啊。就是数据库有点不方便 #255

Open
viponedream opened this issue Mar 9, 2019 · 11 comments
Open

思路 很好啊。就是数据库有点不方便 #255

viponedream opened this issue Mar 9, 2019 · 11 comments

Comments

@viponedream
Copy link

现在用ssdb还是另外安装一个来运行。
不如全部在python里面控制,比如数据库使用peewee来控制 就省事。
对用户来说,只要打开 main运行就行了。现在还要另外 运行一个数据库服务,又不是为了高性能才不得已这么做。

@jhao104
Copy link
Owner

jhao104 commented Mar 11, 2019

建议不错,我也想过用sqlite之类的不需要安装的数据库,之前有人提过mysql的,但是感觉关系型的数据库不是很好,后面抽空会琢磨琢磨

@viponedream
Copy link
Author

昨晚又想了一下,其实连数据库都不需要啊。
你这个运行时,采集IP放到 队列中。
相当于只要两个循环就行了。
1,一个监控队列。采集到1000笔就停,少于50就继续采集。
2,监听客户请求:有客户请求就get一个出来,验证成功后就返给它。验证不成功就继续从队列中取。
这样更简洁了啊。

@viponedream
Copy link
Author

因为采集和验证的速度都很快,等有客户请求时才做也来得及。也省资源。

@jhao104
Copy link
Owner

jhao104 commented Mar 11, 2019

数据库还是有必要,节省了持久化的工作

@QiuZhiFei
Copy link

https://github.com/msiemens/tinydb 不错的选择

@likenji
Copy link

likenji commented Mar 24, 2019

因为采集和验证的速度都很快,等有客户请求时才做也来得及。也省资源。

验证实时做的话,这效率要求也太低了。

@lurenZJF
Copy link

lurenZJF commented Apr 3, 2019

如果能够使用sqlite这种内置的数据库就非常棒了

@landonzeng
Copy link

是的,数据要是能存在sqlite中的话会方便很多

@jhao104
Copy link
Owner

jhao104 commented Jul 10, 2019

感谢建议,后续会考虑不需要额外安装得存储介质

@szchengmi
Copy link

昨晚又想了一下,其实连数据库都不需要啊。
你这个运行时,采集IP放到 队列中。
相当于只要两个循环就行了。
1,一个监控队列。采集到1000笔就停,少于50就继续采集。
2,监听客户请求:有客户请求就get一个出来,验证成功后就返给它。验证不成功就继续从队列中取。
这样更简洁了啊。

其实代理IP数据应该分为几种:

数据库还是有必要,节省了持久化的工作

其实代理IP数据应该分为几种:
1.抓取网络上最新的代理IP,等待有效验证,这个等待时间可以长一点,比如一天一次或者是有效IP池告急.
2.可用有效IP池,每10秒轮询前10个,每60秒轮询前100个.先进先出.轮询失败的推回第一情况
3.已经使用的有效IP池.失效的推回第一种情况,有效而且使用完毕的退回第二种情况.

毕竟 这免费代理IP的有效性不适合长期保存,频繁写数据库和频繁验证对主机压力很大.

@jhao104
Copy link
Owner

jhao104 commented Aug 1, 2019

@szchengmi 首先不管用那种方式取代理验证代理 都需要每步都需要持久化到数据库,第二个频繁验证对主机压力的问题,代理池就是这么个作用,定时验证保证爬虫部分的效率,另外部署的主机只需要带宽足够就行,不存在什么压力

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants