golang 爬虫(二)
来源:互联网 发布:校园网限制mac地址 编辑:程序博客网 时间:2024/05/01 19:06
通用的爬虫原理示意图:
具体实现过程:
1、开一个协程从待抓取url中获取url,进行网页获取,网页解析,然后入库;
2、开另一个协程从已抓取url中获取url,进行获取其他url并且放入待抓取url队列中;
网页解析
在golang中,解析网页有几个比较好用的第三方库。比如:github.com/opesun/goquery,github.com/PuerkitoBio/goquery等等。
github.com/PuerkitoBio/goquery功能强大,但在使用的时候,编译不过,当时比较懒就不用了。而使用github.com/opesun/goquery,该插件是在解析html节点时,使用jq类似的语法。下面介绍几个列子:
content,err:=goquery.ParseUrl(url)if err != nil{ panic(error)}1、打印整个html:fmt.Println(content.Html())
2、获取class的内容:content.Find(".name").Text();
3、获取id的内容:content.Find("#name").Text();
4、当获取的内容中超过一条内容时:
sex:=content.Find("input[name='gender']:checked")for i:=0;i<sex.Length();i++{if sex.Eq(i).Attr("checked") != "checked"{continue;}if sex.Eq(i).Attr("value")=="0"{info.sex = "女"}if sex.Eq(i).Attr("value")=="1"{info.sex = "男"}}
获取其他待抓取网页
本次测试是爬知乎网的用户信息。
1、获取问题网址url;
2、获取对应问题网址的回答用户url;
需改进的地方
1、爬其他用户url的算法;
2、只有两个线程,分别为生产者和消费者。使用线程池。
3、控制生产者的速度与消费者的速度的算法。
0 0
- golang 爬虫(二)
- Golang实现正方教务系统爬虫(二)
- golang 爬虫实现(一)
- golang 数组切片(二)
- Golang爬虫基础:目录
- Golang实战【简易爬虫】
- python 爬虫(二)
- 爬虫学习(二)
- python爬虫(二)
- python爬虫(二)
- Python 爬虫(二)
- 爬虫(二)
- Python爬虫(二)图片下载爬虫
- golang中io包用法(二)
- golang技术随笔(二)理解goroutine
- golang snmp开发学习笔记(二)
- Golang语法总结(二):程序结构
- Golang教程:(二)Hello World
- [hadoop]hadoop机架感知
- 2016 广东移动计算机类暑期实习面试经历 西安站s
- Linux移植【0】NandFlash无法挂在根文件系统
- DownloadManager
- Markdown语法
- golang 爬虫(二)
- 欢迎使用CSDN-markdown编辑器
- PUPPET安装及PUPPET KICK 配置
- linux内核流控(traffic control)相关概念
- iOS多线程网络详解(一)
- (礼拜五log)仅针对firefox的css hack方法 另:附加几个css hack方法
- vs2010中的MSBuild输出warning MSB8012问题
- php表单提交数据的验证处理(防SQL注入和XSS攻击等)
- 2016年新悦游VPN加速器版本修改ip软件使用教程