免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8100 | 回复: 14
打印 上一主题 下一主题

[C] 如何通过自己的程序读取网页源码? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-06 21:54 |只看该作者 |倒序浏览
我想在linux下用c 编写一个程序来读取网页中的源码,再提取网页中自己想要的类容,
具体是要自己的程序能通过baidu网搜索到有email地址的网页,再在网页源码中提取出email。
不知道如何才能通过c写的程序去自动搜索,再读取网页的类容!!!
  
自己一点眉目都没有。网上看到有用其他语言,如Dephi来实现的,不知道用c 在
linux下是否可以实现这样的功能,大家帮忙看看 吧!!

论坛徽章:
0
2 [报告]
发表于 2008-03-06 21:59 |只看该作者
:wink:  方法多了, 主要是用http 与web服务器交互通信,从取到的html源码中按规则过滤提取...

论坛徽章:
0
3 [报告]
发表于 2008-03-06 22:20 |只看该作者
我初学编程,这句  "主要是用http 与web服务器交互通信"  我不懂啊!!  能不能帮忙细说一下啊!!
想麻烦高手能有空的时候再仔细解释一下,  我搜了一下,好像也没有解释这个的!!  麻烦啦!!!

论坛徽章:
0
4 [报告]
发表于 2008-03-06 22:27 |只看该作者
简单的说,就是你构造一个HTTP请求,发送给服务器,服务器就会把你请求的页面传输给你啦。。

论坛徽章:
0
5 [报告]
发表于 2008-03-07 01:13 |只看该作者

论坛徽章:
0
6 [报告]
发表于 2008-03-07 14:25 |只看该作者
原帖由 Kevin_zqw 于 2008-3-6 22:27 发表
简单的说,就是你构造一个HTTP请求,发送给服务器,服务器就会把你请求的页面传输给你啦。。



你说的这个HTTP请求是要用socket来实现吧!!!

论坛徽章:
0
7 [报告]
发表于 2008-03-07 14:30 |只看该作者
楼主什么都不懂,帮也白帮。大家还是省省力气吧

论坛徽章:
0
8 [报告]
发表于 2008-03-07 15:29 |只看该作者
原帖由 x911 于 2008-3-7 14:30 发表
楼主什么都不懂,帮也白帮。大家还是省省力气吧



哎!! 何必嘞!!  我才学了一点linux下的编程,本来想在老师那里找个项目来做, 老师不想在linux下做软件,只好自己拿这个项目来请教大家了,自己又没做过这类东西,当然白痴一个,如果x911看不起我这样的白痴,还请高台贵口 不要让别人也不来帮我,
如果想嘲笑我这种人,我也没意见, 只要大家能帮忙。

没办法 谁叫我读了个垃圾国家的垃圾大学呢!!  人家老师好像都没看得起我这种自己抱这linux学的白痴

论坛徽章:
0
9 [报告]
发表于 2008-03-07 16:07 |只看该作者
给你一个用 Shell 写的例子。 提取某一网站用户信息的

#!/bin/sh
FILE=./tmp
FILE1=./userid
FILE2=./MemberConnect

rm -f $FILE
rm -f $FILE1
rm -f $FILE2
COUNTER=1
while [ $COUNTER -lt 1500 ]
do
STR="http://www.XXXXXX.cn/index/yp.aspx?currentPage=${COUNTER}&province=&city=&county=&companyname=&transportcorridor="
echo $STR
wget $STR -O $FILE
grep '/Company/' $FILE | cut -f 3 -d"/"  >> $FILE1

COUNTER=`expr "$COUNTER" "+" 1`
rm -f $FILE
done

for i in `cat userid`
do
STR="http://www.XXXXXX.cn/Company/${i}/contacts/"
echo $STR
wget $STR -O $FILE

# 联系人 电话 手机 传真 QQ 公司类型 公司网站 公司地址 Email
grep '<li class="CompanyBaseContent">' $FILE | cut -f 2 -d'>' | cut -f 1 -d'<' | sed -e :a -e '$!N; s/\n/\t/;ta' >> $FILE2
echo "隔离标志" >> $FILE2
grep 'Email:' $FILE | cut -f 7 -d'E' | sed -e :a -e '$!N; s/\n/\t/;ta' >> $FILE2

rm -f $FILE
done

论坛徽章:
0
10 [报告]
发表于 2008-03-07 16:45 |只看该作者

回复 #8 ztianshan 的帖子

1,创建一个TCP的Socket
2,连接到对应的web服务器,
3,发送Http请求,去请求相应的pages
4,web Server会响应你的请求,并回复page的源码给你
5,最后就是你自己的解析过程了

注:
     1。最好是了解一下Http协议的知识,另外如果你请求的页面太大,可能你收到的是压缩格式的。
     2。顺便给lz讲个故事:(希望lz能从中体会些东西)

      话说大学士苏东坡和他那个和尚朋友出游,苏东坡问和尚:我站在你面前向什么? 和尚回答说:像尊佛。和尚反问。苏东坡答:像一砣屎。回家后,苏东坡象苏小妹提起此事。小妹说:哥哥心中原来有一砣屎呀。(听于丹老师讲的,我拙与描述,见笑)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP