最近一直在做一个爬虫的程序,老大分配让我爬天气预报,无奈什么都不懂,只熟悉c语言和了解一些c++我是从零开始学起,刚开始时一头雾水,不知道爬虫是什么,虽然去年的时候在web搜索一课中知道这个名词,可是具体的过程一点也不了解,学习了一周,看了看其他人的代码,才慢慢了解。
总结起来,我自己的一点很肤浅的理解,什么是“爬虫”,从网上爬取所需要的有用的信息并且以一定的方式保存起来,例如,一个人经常国外旅游,那么他就需要知道国外城市的天气,风力,温度,日期等状况,他会选择一个网址,打开一个页面,但是网页上呈现给他的东西很多,那么爬虫,就是要爬取这些天气信息,滤除其他的对他来说没有用的信息,有针对性的。爬下来以后的信息,可以是某种图片形式保存,或者是一些文本形式保存的。
所以“爬虫”分为几步骤:
1.找到URL,打开一个网页;
2。分析网页,找到下一个链接;
以上两步循环,目前是针对一个特定的网页爬取特定的东西来写的,所以没有考虑太多,例如像其他网上说的开辟多线程,将打开和解析页面作为两个独立的进程来写代码,以及搜索的算法复杂度等深层次的问题。
编译环境:vc.net 2003,在win console project下新建工程,并且支持MFC;
部分代码如下:
// ttt.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include "ttt.h"
#include "Afxinet.h"
#include <fstream>
#include <istream>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
struct city
{
CString value;
CString name;