Scrapy配合socks5 proxy抓取页面
Scrapy是一个非常方便的爬虫框架,功能可以覆盖基本的应用场景,比如多任务、去重、proxy、深度控制、session等等。虽然有些人会认为Scrapy是基于python的,由于python先天的解释性特点,以及GIL的问题,性能不好,但其实爬虫的瓶颈不在性能,在小规模下性能不重要,大规模下瓶颈在带宽也不在性能。这里主要基于Scrapy介绍一下使用socks5 proxy,虽然网上有一些方案介绍,但其实都有问题,此外分享一些使用上的技巧。
遇到的技术问题沉淀汇总,希望对大家有所帮助。如果有问题、建议,或者任何需要讨论的,都可以发送邮件到hugh@inner-peace.cn ,与我联系,共同学习。
Scrapy是一个非常方便的爬虫框架,功能可以覆盖基本的应用场景,比如多任务、去重、proxy、深度控制、session等等。虽然有些人会认为Scrapy是基于python的,由于python先天的解释性特点,以及GIL的问题,性能不好,但其实爬虫的瓶颈不在性能,在小规模下性能不重要,大规模下瓶颈在带宽也不在性能。这里主要基于Scrapy介绍一下使用socks5 proxy,虽然网上有一些方案介绍,但其实都有问题,此外分享一些使用上的技巧。
平时难免有一些访问“外网”的需要,或者网络爬虫需要一些代理,也有方式能够购买一些代理ip,但如果想很简单的部署一个稳定的代理ip,那么这里提供一个参考,使用Golang实现的sock5代理服务。
H5中有很多播放器可以使用,比如DPlayer、Video.js,这里不是去做播放器之间的对比,而是基于DPlayer,总结一下在Vue中如何使用,以及相关的一些关键点,比如播放Hls(m3u8)视频,以及播放成功和失败的事件监听。
之前总结了在Hugo中如何加入valine来实现第三方评论插件,可以回顾《Hugo中加入Valine评论功能》,但希望Hugo上有评论时能够有一个通知的机制,这里就以邮件通知为例,基于之前介绍的Valine评论功能,进一步介绍如何实现Valine的评论通知。
Python的版本众多,很多lib在不同Python版本之间的兼容性不尽相同,之前使用Python时非常苦恼,比如字符编码问题,mysql客户端lib,以及在数据挖掘和量化交易中的工具(如zipline)。虽然现在也有conda能简化这些操作,但是学会virtualenv仍然是Python开发能力发展的必经之路。
利用服务器和钉钉API给钉钉账号发消息,在很多实际的场景中会有作用,比如应用程序的报警通知,或者数据报表的通知等等。微信目前的开放程度没有钉钉强,使用钉钉API可以很方便的做到,这里就简单总结一下步骤。
在Vue中使用iView UI的Input控件时,在type="numebr"并输入小数的时候,会提示“请输入有效值。两个最接近的有效值分别为a和b”的问题,其中a和b是所输入小数的上下两个整数。有一些提到的方法是使用step控制,但针对iView的Input无效。如果是使用iView来解决,那么可以通过换成InputNumber控件来解决问题。
在Vue中使用iView UI的Select控件时,发现chrome的console一直出现Missing required prop的报错,还是Vue的在v-model的使用不太熟悉,需要利用数据绑定解决问题。
Hugo搭建的博客网站如何引入Valine的第三方评论插件。
Vue中Javascript与服务端的异步数据交互,都是推荐使用axios库,而不是之前使用jQuery中的ajax方式。的确axios在使用起来也是非常方便,而在Vue中使用jQuery还需要增加一系列配置,总体jQuery与Vue不是非常契合。这里总结一下Vue中使用axios的基本用法。