编程技术
Scrapy-Redis结合POST请求获取数据
能看到这篇文章的小伙伴肯定已经知道什么是Scrapy以及Scrapy-Redis了,基础概念这里就不再介绍。默认情况下Scrapy-Redis是发送GET请求获取数据的,对于某些使用POST请求的情况需要重写make_request_from_data
函数即可,但奇怪的是居然没在网上搜到简洁明了的答案,或许是太简单了?
这里我以httpbin.org
这个网站为例,首先在settings.py
中添加所需配置,这里需要根据实际情况进行修改:
SCHEDULER = "scrapy_redis.scheduler.Scheduler" #启用Redis调度存储请求队列
SCHEDULER_PERSIST = True #不清除Redis队列、这样可以暂停/恢复 爬取
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" #确保所有的爬虫通过Redis去重
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderPriorityQueue'
REDIS_URL = "redis://127.0.0.1:6379"
如何对Go代码解偶
原文,文章作者也是《Hands-On Dependency Injection in Go》的作者,向原作者表示感谢。
你是否曾经由于添加某个新功能却导致另一个功能出问题?修复好这个,另一个又出问题,就好象打地鼠一般。
你是否曾经花费大量的时间调试Bug,最后却发现问题潜伏在另一个、甚至毫不相关的模块中?
这些问题都是由于高耦合引起的。
在这篇文章中,我们来使用解偶的方式来让代码更加易于理解、维护、测试。
go get命令使用socket代理
由于某些不可描述的原因,国内使用go get
命令安装某些包的时候会超时导致失败,比如net
包、sys
包、tools
包等。第一种解决办法就是自己从git上下载后添加链接到GOPATH
中,比如:
git clone https://github.com/golang/net.git $GOPATH/src/github.com/golang/net
git clone https://github.com/golang/sys.git $GOPATH/src/github.com/golang/sys
git clone https://github.com/golang/tools.git $GOPATH/src/github.com/golang/tools
ln -s $GOPATH/src/github.com/golang $GOPATH/src/golang.org/
cd $GOPATH/src/golang.org/ && mv golang x
墨卡托坐标转经纬度
今天获取百度地图数据时候发现其坐标都是类似12945050.96,4826978.52
这种而非常见的经纬度,之前获取百度外面商家信息时就发现了这个问题但没深入研究,搜索后发现这种表示方法叫做墨卡托坐标
。不得不说,关于坐标的标准还真是挺多的,根据经纬度查询位置可以使用这个网站。