larbin与mysql连接

先备份。

从src/interf/useroutput.cc 文件的保存格式对应可以看得出来,不同保存模式分别对应哪个代码

defaultuseroutput.cc 对应默认的什么都不做

mirrorsaveuseroutput.cc 对应镜像模式

statsuseroutput.cc 对应状态模式

saveuseroutput.cc 对应一般模式d*****/f*****

修改src/interf/saveuseroutput.cc

实现将网页下载到磁盘,同时将URL和本地地址记录在mysql,是实现本地快照的基础。

indexFds = creat(fileName, S_IRWXU); //creat the save/d***** index file
if (indexFds < 0) { cerr << "cannot open file " << fileName << "\n"; exit(1); } 这段代码是生成index文件,在save/d*****/index,这个文件中就是已经下载的网页列表,对应了id,此id就是文件夹的序号。 由于有了导入mysql功能,为了减轻系统负担,所以将此段禁掉, ecrireBuff(indexFds, buf, s); 是在index文件中写入条目,可以禁掉 ecrireBuff(fd, page->getPage(), page->getLength()); 是在具体的/d*****/f*****文件中写入下载的html代码

数据库中可以设置ID, Html_Link,PhyLoc, Time, Saved等字段,网络URL对应本地地址。

原文地址:http://hi.baidu.com/hustwk/blog/item/8865dc2a4069fb28d42af1b6.html

另外部分修改地址:http://hi.baidu.com/hustwk/blog/item/689d2a3f007b0fe955e72373.html

为了避免文件名判断混乱,在src/types.h中,改为如下:

#define fifoFile “fifofile”
#define fifoFileWait “fifowait”

options.h 中的 defaultuseroutput.cc

#define DEFAULT_OUTPUT 对应着使用src\interf\defaultuseroutput.cc
#define SIMPLE_SAVE 对应着使用src\interf\saveuseroutput.cc
#define MIRROR_SAVE 对应着使用src\interf\mirrorsaveuseroutput.cc
/#define STATS_OUTPUT 对应着使用src\interf\statsuseroutput.cc

我实验室改的是saveuseroutput.cc,在其中加入mysql语句,保证usr/include下有mysql.h等头文件。

编译makefile的代码方面:

在src/Makefile 中 加入“-L/usr/lib/mysql -lmysqlclient ” ,即为如下:

larbin: $(ABS-UTILS-OBJ) $(ABS-FETCH-OBJ) $(ABS-INTERF-OBJ) $(ABS-MAIN-OBJ)
$(CXX) $(MF) $(LIBS) -L/usr/lib/mysql -lmysqlclient \
-o larbin $(ABS-UTILS-OBJ) \
$(ABS-FETCH-OBJ) $(ABS-INTERF-OBJ) $(ABS-MAIN-OBJ) ../adns/libadns.a

在src/larbin.make 中,加入“-I/usr/include/mysql -g”,即为如下:

CXXFLAGS:= -Wno-deprecated -Wall -D_REENTRANT -I- -I$(BASEDIR) -I$(ADNSDIR) -I/usr/include/mysql -g

备份地址 “larbin与爬虫” 分类下的文章

http://hi.baidu.com/hustwk/blog/category/larbin%D3%EB%C5%C0%B3%E6/index/0

Categories: 技术爱好

Leave a Comment