如何用c语言抓取网页中的数据?

Roderick_yj 2013-07-15 05:09:58
抓取网页数据的网址:http://www.dianping.com/search/category/1/10
只想截取网页中的店名和地址,但是在截取的时候就会出现如下代码的画面,请问大侠们该如何解决呢?(截取代码内容前面省略),网页代码很多没截取下来………
我是想把从网页中截取的店名和地址存入数据库的


alt="dianping.com" src="http://i1.dpfile.com/s/img/logo.gif" /></h1><p>对不起,您的访问存在某些问题。如果您是正常访问,请尝试以下方法:</p><ul><li><p class="c"><a href="#FAQ" onclick="var faq=document.getElementById('FAQ');if(faq.style.visibility=='visible'){faq.style.visibility='hidden'}else{faq.style.visibility='visible'}">点击此处查看常见访问问题</a>。</p></li><li><p class="c">请帮助我们填写一份<a href="http://www.dianping.com/alpacasurvey">用户反馈</a>,非常感谢!我们不会询问任何隐私信息,将根据您的回答寻求解决同类问题的方法。</p></li><li><p class="c">如果以上方法都不能解决您的问题,请与<a href="mailto:spam@dianping.com">spam@dianping.com</a>联系,并附上以下信息,我们会尽快处理:</p><p><textarea rows="10" cols="80">401
180.173.173.253


以下附上我的代码:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <unistd.h>
4
5 #include <curl/curl.h>
6 #include <curl/easy.h>
7
8 FILE *fp; //定义FILE类型指针
9 //这个函数是为了符合CURLOPT_WRITEFUNCTION而构造的
10 //完成数据保存功能
11 size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
12 {
13 int written = fwrite(ptr, size, nmemb, (FILE *)fp);
14 return written;
15 }
16
17 int main(int argc, char *argv[])
18 {
19 CURL *curl;
20
21 curl_global_init(CURL_GLOBAL_ALL);
22 curl=curl_easy_init();
23 curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
24 curl_easy_setopt(curl, CURLOPT_HTTPGET, "?test=string");
25
26 if((fp=fopen(argv[2],"w"))==NULL)
27 {
28 curl_easy_cleanup(curl);
29 exit(1);
30 }
31 //CURLOPT_WRITEFUNCTION 将后继的动作交给write_data函数处理
32 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
33 curl_easy_perform(curl);
34 curl_easy_cleanup(curl);
35 exit(0);
36 }
...全文
1093 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Roderick_yj 2013-07-16
  • 打赏
  • 举报
回复
不知道这样分合理不?望见谅!
Roderick_yj 2013-07-16
  • 打赏
  • 举报
回复
感谢2楼3楼4楼提供的帮助,谢谢!
兆帅 2013-07-16
  • 打赏
  • 举报
回复
wget+grep也可以吧,,,
Proteas 2013-07-16
  • 打赏
  • 举报
回复
可以参考下开源实现:https://github.com/hzzlzz/crawler
www_adintr_com 2013-07-15
  • 打赏
  • 举报
回复
struct curl_slist *slist=NULL; slist = curl_slist_append(slist, "User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist);
qq120848369 2013-07-15
  • 打赏
  • 举报
回复
带上user-agent就可以了: curl 'http://www.dianping.com/search/category/1/10' -A 'Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0'
猪头小哥 2013-07-15
  • 打赏
  • 举报
回复
必须用C语言么?
VC++ MFC 经典教程 - 基础篇 1.CP_YourFirstWindowsProgram.mp4 10.MFC_GDI_画直线和曲线.mp4 11.MFC_GDI_画椭圆_多边形及其他形状.mp4 12.MFC_GDI_画笔和画刷.mp4 13.MFC_GDI_画文本和字体.mp4 14.MFC_GDI_备用对象和取消选定.mp4 15.MFC_Ruler.mp4 16.MFC_窗口滚动条.mp4 17.MFC_Accel.mp4 18.MFC_Accel(2).mp4 19.MFC_消息框.mp4 2.Windows_编程模型.mp4 20MFC_客户区鼠标消息.mp4 21.MFC_TicTac-1.mp4 22.MFC_TicTac-2.mp4 23.MFC_TicTac-3.mp4 24.MFC_鼠标滚轮.mp4 25.MFC_捕获鼠标.mp4 26.MFC_VisualKB-1.mp4 27.MFC_VisualKB-2.mp4 29.MFC_菜单.mp4 3.MFC_第一个MFC程序设计.mp4 30.MFC_CButton类.mp4 31.MFC_E_FontView-1.mp4 32.MFC_E_FontView-2.mp4 33.MFC_CEdit类.mp4 34.MFC_MyPad.mp4 35.MFC_对话框_静态文本_编辑框.mp4 36.MFC_对话框_访问控件_7种方法_A.mp4 37.MFC_对话框_访问控件_7种方法_B.mp4 38.MFC_对话框_访问控件_7种方法_C.mp4 39.MFC_对话框_复选框_单选钮.mp4 4.MFC_消息映射.mp4 40.MFC_模态对话框.mp4 41.MFC_非模态对话框.mp4 42.MFC_属性表.mp4 43.MFC_公用对话框.mp4 44.MFC_数组类-1.mp4 45.MFC_数组类-2.mp4 46.MFC_CArray.mp4 47.MFC_列表类.mp4 48.MFC_映射类.mp4 49.MFC_类型指针类.mp4 5.MFC_使用向导快速进行MFC程序设计.mp4 50.MFC_CFile.mp4 51.MFC_CArchive.mp4 52.MFC_四个对象四种方法.mp4 53. MFC_Ruler.mp4 54.MFC_Ruler.mp4 55.MFC_Ruler.mp4 56.MFC_SdiSquares.mp4 57.MFC_Scroll_Ruler.mp4 58.MFC_CHtmlView.mp4 59.MFC_CTreeView.mp4 6.MFC_字符集和TEXT宏.mp4 60.MFC_CListView.mp4 61.MFC_MdiSquares.mp4 62.MFC_动态拆分窗口.mp4 63.MFC_ToolBar.mp4 64.MFC_ToolBar_Ex13a.mp4 65.MFC_StatusBar.mp4 66.MFC_StatusBar_Ex13b.mp4 67.MFC_Rebar.mp4 68.MFC_EZPrint.mp4 69.MFC_Print_Bubble.mp4 7.MFC_建立应用程序.mp4 8.MFC_第一个MFC程序设计(不用向导).mp4 9.MFC_Windows_GDI_设备描述表类.mp4 数据结构与算法_C语言 01.swap.mp4 02.BubbleSort.mp4 03.SelecttionSort.mp4 04.顺序查找.mp4 05.C_DS_折半查找.mp4 06.递归.mp4 07递归算法_折半查找.mp4 08.Permutations.mp4 09.插入排序.mp4 10.快速排序.mp4 11.归并排序.mp4 12.顺序栈.mp4 13.顺序队列.mp4 14.链表的基本概念.mp4 15.单链表的基本运算.mp4 16.循环单链表.mp4 17.双向链表.mp4 18.链式栈.mp4 19.链式队列.mp4 20.基数排序.mp4 21.树.mp4 22.二叉树的存储表示与实现.mp4 23.二叉树的遍历.mp4 24.二叉查找树.mp4 25.红黑树.mp4 26.堆.mp4 27.堆排序.mp4 28.哈希表.mp4 29.图_邻接矩阵

69,337

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧