Skip to content

P7-DrissionPage项目部署服务器的最佳实践

哈喽大家好,欢迎来到DrissionPage自动化数据采集合集的第八集,这一集来讲讲我对于DrissionPage项目部署服务器的最佳实践的理解,本文不会设计代码,主要是思路。

经常在一些群聊中看到有人问如何将DrissionPage相关的项目部署在linux服务器,或者docker中,或者说过程中遇到了一些问题如何解决。比如说部署到无界面的linux系统的时候只能使用无头浏览器,而无头浏览器的的特征就可能被检测。部署到docker中的话可能需要在docker中安装浏览器,而且也是无头的,不可控条件都会增加。

但是DrissionPage是如此的好用以至于很多项目都需要使用它,也有很多人从selenium转向它。包括我,但是我是如何解决DrissionPage相关项目的部署问题呢?

其实很简单,就是使用一个windows服务器,几乎不需要什么配置,最低配置2h2g新人优惠的话几十块一年。你可以直接使用本地连接,就像操作自己的电脑一样,然后安装个浏览器,把你的项目传到服务器上,点点点就可以运行项目了。

也就是说我认为DrissionPage相关项目部署服务器的最大最佳实践就是部署在Windows上,因为没必要给自己增加难度。虽然说确实有教程是教那些部署linux的,但好像或多或少都有一些问题,如果想少踩坑的话,那你直接在windows服务器上和操作本地电脑一样的体验绝对是最稳妥的。有的兄弟可能才学编程的时候,可能会像我之前一样,就是遇见困难就想着克服它。这种精神固然是好的,但是等到后来的话,你遇见问题越来越多,而你的精力,时间或者工期又是一定的。等你权衡利弊之后你就会选择一个相对稳妥的,简单的,不折磨的。而部署linux那种困难有人克服了之后,你再去把他的方法给搬过来也是可以。没必要保持那种强迫症或者说完美主义,一定要在linux上,一定要在docker里。

但是这样就意味着所有用到DrissionPage的项目都要部署到windows服务器上了。然而我们真实的项目场景可能是很复杂的一层套一层,紧密连接的。而不是分隔做得很好,不是像微服务那样各司其职,界限清晰,方便调用的。比如:你的Django服务里面用到了scrapy,scrapy又用到了DrissionPage。那你总不能把你的Django网站服务也放到windows服务器上而不是linux上的docker中吧。

所以如何应对呢,其实很简单,制作一个服务,他只做一件事情,就是使用DrissionPage请求网页,只需要接受一个url,然后返回一个它渲染出来的html。当然,只要你愿意,你可以定制化一些参数来控制这个服务的一些行为。这样的话,就相当于你所有用到DrissionPage的地方都可以被抽离到这一个服务里,然后你再将这个服务使用http或者rpc的方式暴漏出去供其他项目使用。这样其他的所有项目服务都不需要使用到DrissionPage,而只需要使用你封装的这个服务,这个服务呢夜之需要你在windows服务器上部署一次。综合来说呢,我认为这简直就是完美答案。不知道大家有什么好的应对方法,欢迎在评论区交流分享。

这集内容到此结束,如果喜欢这个合集的内容,可以关注一下。

本站收录内容源自互联网,不对其网站内容或交易负责。 | 如有内容侵犯权益,请联系站长删除相关内容!