有没有不使用框架的 go 语言写的爬虫例子?

2021-01-09 17:36:34 +08:00
 Nillouise

搜了一圈,基本都是用 colly 这样的框架写的爬虫,有没有不用框架写的爬虫 example?

最好有以下功能: 基本的频率控制, 基本的调度控制, seesion 的维护, xpath 的使用, 主流的 http 客户端的使用(不要像 java,python 那样多个 http 客户端 api,然后专门挑了个难用的出来)。

当然,功能不全也没关系,我可以自己加上。

3375 次点击
所在节点    Go 编程语言
13 条回复
raaaaaar
2021-01-09 17:50:27 +08:00
自己造一个
Nillouise
2021-01-09 17:53:00 +08:00
@raaaaaar 在造了,不过先参考一下现成的
ArJun
2021-01-09 18:03:52 +08:00
很多啊
wangbenjun5
2021-01-09 18:05:27 +08:00
你去写一个,发现写完不就是另一个 colly 框架么?爬虫不就是那点东西,咋写都一样
Nillouise
2021-01-09 20:43:58 +08:00
@wangbenjun5 代码量不一样呀,example 200 行代码,一个文件就搞定,我改也容易改呀
wangbenjun5
2021-01-09 21:59:23 +08:00
@Nillouise 200 行哪能实现你说的那些功能。。。开玩笑
SingeeKing
2021-01-09 22:20:40 +08:00
之前完全从 0 写过一个,除了没有用 xpath 而是用的 css 选择器外 lz 写的都实现了。看了下代码行数

-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Go 471 19567 15804 158022
Assembly 47 563 763 4605
Markdown 29 855 0 2411
Bourne Shell 8 108 349 676
YAML 13 45 18 455
XML 6 0 0 280
TOML 4 32 4 102
make 3 31 2 83
C 2 14 30 44
Dockerfile 1 1 0 10
JSON 1 0 0 8
-------------------------------------------------------------------------------
SUM: 585 21216 16970 166696
-------------------------------------------------------------------------------
SingeeKing
2021-01-09 22:22:00 +08:00
抱歉发出来感觉不对看了下默认把 vendor 算进去了,排除掉是

-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Go 47 641 244 2461
XML 6 0 0 280
Markdown 1 82 0 133
Bourne Shell 2 19 0 60
-------------------------------------------------------------------------------
SUM: 56 742 244 2934
-------------------------------------------------------------------------------
Zhancha
2021-01-10 08:18:29 +08:00
我一直都是自己写的,用的是 fasthttp 还有解析库,遇到动态绑定的就使用 selenium 实现。
Nillouise
2021-01-10 22:28:18 +08:00
@SingeeKing 你是实现了啥牛逼反爬功能?这代码量感觉跟基本的业务爬虫的量差好多
maocili
2021-01-11 18:30:50 +08:00
https://github.com/maocili/Proxy/tree/master/spiderProject 自己之前练习写的,不知道算不算
necodba
2021-03-04 23:14:14 +08:00
@Nillouise 最近在不同的地方用不同的,现在做的相对久一点的还是 chromedp,此外还有一个 chromedp 的改良版 rod,但是有些封装没有你说的这么全,不知道是不是都是直接拿 net 包搞的干活,只能自己造了,手动狗头
lowkey
2021-03-16 12:19:16 +08:00
github.com/go-rod/rod
这款还不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/743364

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX