https://github.com/cclient/goworkscript
业余时间写的go小工具脚本
https://github.com/cclient/goworkscript
clawler go spider
Last synced: 8 days ago
JSON representation
业余时间写的go小工具脚本
- Host: GitHub
- URL: https://github.com/cclient/goworkscript
- Owner: cclient
- Created: 2017-04-29T08:32:56.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-06T13:31:58.000Z (almost 9 years ago)
- Last Synced: 2025-03-06T11:43:48.961Z (over 1 year ago)
- Topics: clawler, go, spider
- Language: Go
- Size: 2.12 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
go的一些脚本工具
个人实际把go当一个简版的c,轻量的java,无回调地狱的nodejs,性能更高的python来用
这个项目不是什么大工程,都很轻,更像是类似python的业余脚本
#### src/client/pdf
下载极邦客网站pdf
索引来源(无意中搜到一个,发现可以搜到好多,就写这个脚本都拿下来)
http://cn.bing.com/search?q=site:ppt.geekbang.org+ppt
google和bing搜索的结果基本一致
建表语句在
src/client/pdf/db.sql
用网站源pdf id 作排重
如下例
'1','Bing','580984e1c891a','如何打造大规模互联网企业的 监控告警平台','http://ppt.geekbang.org/slide/download/467/580984e1c891a.pdf','如何打造大规模互联网企业的 监控告警平台-- 以携程hickwall为例 author rhtang@ctrip.com'
网站id 为580984e1c891a
google,!@#$%&,不是每个人都,!@#$%&,为用适用更多人(也为省点代理流量),用bing作搜索引擎
最大的瓶颈在下载文件的网络io,并行无甚意义,所以解析和下载完全串行化
能被搜索引擎爬到,说明极邦客允许无登录访问。不知网站是有意为知,还是权限部分设计缺陷所致
爬虫拿到的部分pdf文件信息示例
## src/client/spider
后台并行网页抓取(只保留了基本的get请求,需要加代理,加header头,多节点分发的可以自已补充)
通过redis解耦
客户端提交url信息至redis
后台批量并行请求url(默认并行请求数20条)
流程说明
1共提交1000条至redis(往list前入)
2每隔10秒从redis取100条(从list后取)
2因并行数是20,100条共分为5组,每组之间FIFO
3取完后移100条出list(从list后移出)
4完成后继续从redis取100条(从list前取)
go http 底层会复用tcp连接,请求效率很高
并发比较粗糙,实际可以封装的通用一些。
## src/client/wangpiao
网票网抓取内容解析,网站改版,部分已失效
启动方式
修改src/app.go
执行 go run src/app.go
也可以打docker启用
*————————————————————————————*
实际以上具备了爬虫及解析最基本的功能。
https://github.com/cclient/gowebframework + + src/client/spider
可以组合成简版的爬虫服务后台,提交需要请求url,然后再从redis直接取网站内容解析。