用c语言写一个网络爬虫
2016-09-08 18:19
148 查看
(同步个人博客 http://sxysxy.org/blogs/28 到csdn
(以上noip普及组难度)
2 如何知道页面A有到达页面B的链接? 抓取页面A的网页源代码分析即可。重点便是html语句例如
3 访问网络。windows: winsock2.h系列, linux: sys/socket.h系列。用TCP Socket简单地实现http即可。
写一个网络爬虫
写一个网络爬虫,来获取一个网站上感兴趣的信息。最基本的模型
就是图。每个页面看作一个节点,若页面A有到达页面B的链接,则添加一条由A到B的单向边。爬虫要遍历这张图。遍历这张图
广度优先搜索即可。 不推荐用深度优先搜索(容易陷入单个分支而难以搜索到更广泛全面的信息) (如果不明白,请自行查询图论相关资料)(以上noip普及组难度)
但是细节(重点)
1 这不是OI题目,不会把节点以编号的形式给你。 一个页面只能通过它的网址认识它。由网页之间的关系构成的图中很可能(99.99…%)有环,搜索的时候要判重否则就会死在环里面。一个网址,是一个字符串,代表一个页面,如何快速判重? 字典树!2 如何知道页面A有到达页面B的链接? 抓取页面A的网页源代码分析即可。重点便是html语句例如
href= "/blogs/3",表示A能到达页面/blogs/3/
3 访问网络。windows: winsock2.h系列, linux: sys/socket.h系列。用TCP Socket简单地实现http即可。
一个简单的实现
https://github.com/sxysxy/httpSpider 这里我使用c语言做的一个简单的网络爬虫(已经完工)。 同时里面还有字典树和队列数据结构的实现。 httpSpider爬虫搜索遍历网站的同时,可以回调自定制的plugin.dll外挂dll的analyzer函数,将网站的数据发给它(这样泥就可以完成数据分析)。本来想写个长篇大论的
但是比起什么可持久化树套树啊,FFT/NTT啊,这个真的没什么可多说的。相关文章推荐
- 用C语言实现一个类似学籍管理系统的 e协 管理系统beta ( 正在完善中...)
- 俺用c语言写的一个天下算法最烂的俄罗斯方块程序
- 一个比较好的全排列算法(C语言)
- C语言中如何求任意一个int型数组的长度
- 一个简单的加密算法Kaiser(C语言实现)
- C语言写的一个钟表(很炫哦)
- 一个C语言的原代码,有8处错误,望大家帮我修改一下。
- 我的一个 C语言代码
- c语言: 键盘输入一个n个字符的串,然后按字母表顺序输出这n个字符
- 用C语言实现一个简单的HTTP客户端(HTTP Client)
- 我用c语言写了一个关于商人过河的问题
- [C语言]偶碰到的一个笔试题,大家都来做做。
- C语言的一个项目实战
- 如何将多个C语言模块组合成一个程序
- 一个简单用C语言实现的日志函数
- 关于C语言For循环的一个问题~!
- 一个c语言构造函数调用的问题(有趣)
- 哥德巴赫猜想之一:是任何一个大于5的偶数都可以表示为两个素数之和(C语言)
- 【用C语言写一个内存管理程序】
- 一个C语言面试编程题