写一个网络爬虫

用C语言来写一个网络爬虫,来获取一个网站上感兴趣的信息,抓取自己需要的一切。


 

#include<cspider/spider.h>/*

自定义的解析函数,d为获取到的html页面字符串

/voidp(cspider_t cspider,chard) {charget[100];//xpath解析htmlintsize = xpath(d,"//body/div[@class='wrap']/div[@class='sort-column

area']/div[@class='column-bd cfix']/ul[@class='st-list cfix']/li/strong/a",get,100);inti;for(i =0; i < size; i++) {//将获取到的电影名称,持久化saveString(cspider,get[i]); }}/*

数据持久化函数,对上面解析函数中调用的saveString()函数传入的数据,进行进一步的保存

/voids(voidstr) {charget= (char)str; printf("%sn",get);return;}intmain() {//初始化spidercspider_t spider = init_cspider();charagent ="Mozilla/5.0 (Macintosh; Intel

Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0";//char *cookie = "bid=s3/yuH5Jd/I; ll=108288; 

viewed=1130500_24708145_6433169_4843567_1767120_5318823_1899158_1271597;

__utma=30149280.927537245.1446813674.1446983217.1449139583.4;

__utmz=30149280.1449139583.4.4.utmcsr=accounts.douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/login; ps=y; ue=965166527@qq.com; 

dbcl2=58742090:QgZ2PSLiDLQ; ck=T9Wn; push_noty_num=0; push_doumail_num=7; ap=1;

__utmb=30149280.0.10.1449139583; _utmc=30149280";//设置要抓取页面的urlcs_setopt_url(spider,"so.tv.sohu.com/list_p1100_p20_p3_u5185_u5730_p40_p5

p6_p77_p80_p9_2d1_p101_p11.html");//设置user agentcs_setopt_useragent(spider, 

agent);//cs_setopt_cookie(spider, cookie);//传入解析函数和数据持久化函数的指针

cs_setopt_process(spider, p); cs_setopt_save(spider, s);//设置线程数量cs_setopt_threadnum(spider, DOWNLOAD,2); cs_setopt_threadnum(spider, 

SAVE,2);//FILE *fp = fopen("log", "wb+");//cs_setopt_logfile(spider, fp);//开始爬虫returncs_run(spider);}


 

 

爬虫优化

爬虫程序一般分成数据采集模块,数据分析模块和反爬策略模块,如果能针对这三个模块进行优化,可以让爬虫程序稳定持续的运行。

1.采集模块

一般来说目标服务器会提供多种接口,包括url、app或者数据api,研发人员需要根据采集数据难度、每天数据量要求、目标服务器反爬限制频率分别进行测试,选择适合的采集接口及方式。


2.数据分析模块

由于网络采集存在各种不确定性,数据分析部分在根据需要做好数据解析之后,要做好异常处理及定位重启功能,避免出现程序异常退出或者数据采集遗漏、重复的情况

3.反爬策略模块

分析目标服务器的爬虫策略,控制爬虫请求频率甚至包括验证码、加密数据的破解,同时使用优质代理或爬虫代理,寻找业务独享、网络稳定、高并发、低延迟的代理产品,确保目标服务器没法进行反爬限制及预警,

通过采用以上各项优化策略,能够让爬虫程序长期稳定的运行。


 

不管你是转行也好,初学也罢,进阶也可,如果你想学编程~

【值得关注】我的 C/C++编程学习交流俱乐部!【点击进入】

问题答疑,学习交流,技术探讨,还有超多编程资源大全,零基础的视频也超棒~

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/huya-edu/p/14325164.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!