CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

关于如何在读取网页时截取相应字段的问题。跪求各位老大给出办法!!!(68分!又顺又发!!!)

楼主wildroseck(切)2004-12-03 10:58:47 在 VB / 基础类 提问

从网页文件里面提取不同信息,如这个网页部分  
  <table   width="445"   border="0"   cellspacing="1"   cellpadding="3"   height="112"   bgcolor="#CCCCCC"   align="center"   class="td1">  
                      <tr   bgcolor="#efefef"   class=td1>    
                          <td   width="21%">    
                              <div   align="right">公司简称:</div>  
                          </td>  
                          <td   width="79%">    
                              嘉鸿                         </td>  
                      </tr   >  
                      <tr   bgcolor="#efefef"   class=td1>    
                          <td   width="21%">    
                              <div   align="right">公司全称:</div>  
                          </td>  
                          <td   width="79%">    
                              深圳市嘉鸿电子                         </td>  
                      </tr>  
                      <tr   bgcolor="#efefef"   class=td1>    
                          <td   width="21%">    
                              <div   align="right">联系人:</div>  
                          </td>  
                          <td   width="79%">    
                              伍小姐                         </td>  
                      </tr>  
  我想把公司名称、联系人存到数据库里去(数据库存储倒不是问题)  
  关键是怎么把这些信息类别区分出来。我是批量读很多网页。  
  c()   =   Inet1.OpenURL(,   icByteArray)用的是这个控件的这个方法  
  关键是批量循环中怎么从c()中截取出相应的信息。按长度应该不行,跪求各位老大给出办法!!!  
  问题点数:0、回复次数:17Top

1 楼pingkwok(凭空倭寇)回复于 2004-12-03 11:02:26 得分 0

顶!!!!Top

2 楼fishzone(阿愚@脸上有疤)回复于 2004-12-03 11:03:46 得分 0

如果网页是格式化的,那就很好办,做一个循环。找关键字。  
  我以前做过,但是是用webbrowser控件做的。Top

3 楼wildroseck(切)回复于 2004-12-03 11:08:50 得分 0

关键字怎么找  
  就针对我上面列出的那段HTML  
  比如我想找“公司简称”这个字串的位置,如何找?Top

4 楼wildroseck(切)回复于 2004-12-03 11:10:24 得分 0

网页是格式化的  
  http://www.161online.com.cn/company_info.phtml?company_id=45788    
  我做循环的是后面那个IDTop

5 楼fishzone(阿愚@脸上有疤)回复于 2004-12-03 11:14:48 得分 0

用instr(),找"公司简称"这几个字。  
  如果有的话,比如说,在第   n   个字付的位置。  
  然后再用   instr()   从   n   开始找,找到<td   width="79%">这几个关键字,  
  和</td>之间的字符取出来,空格去掉,就是你要的内容了。  
  主要用的就是instr()这个函数。Top

6 楼fishzone(阿愚@脸上有疤)回复于 2004-12-03 11:17:57 得分 0

不错啊,把里面信息拿出来,可以卖钱呢。就是不知道合不合法。Top

7 楼wildroseck(切)回复于 2004-12-03 11:35:16 得分 0

我调试了一下  
  我那个c()里面读出来的怎么都是乱码  
  如:  
  ????琼?敨杩瑨∽∵?琯????牴??琯扡敬??慴汢?楷瑤????潢摲牥∽?挠汥獬慰楣杮∽?挠汥灬摡楤杮∽?愠楬湧∽散瑮牥???琼?????摴愠楬湧∽散瑮牥?楷瑤?ㄢ??椼杭猠捲∽浩条獥欯潬潧朮晩?楷瑤?ㄢ??敨杩瑨∽财??摴????摴愠楬湧∽散瑮牥?慶楬湧∽業摤敬??呄??‰??呈?????????剕??獵摥椠?桴?潭楶????????琠硥?獵摥椠?桴?潭楶??????似???汣獡楳?汣楳?????????晣?????????挠摯扥獡?瑨灴?搯睯汮慯?慭牣浯瑤???敨杩瑨????椼杭猠捲栽瑴??睷??漱汮湩?潣?湣椯慭Top

8 楼fishzone(阿愚@脸上有疤)回复于 2004-12-03 11:39:08 得分 0

呵呵,用webbrowser吧Top

9 楼wildroseck(切)回复于 2004-12-03 11:48:22 得分 0

这个控件在哪引用?我怎么没找到  
  我是vB6Top

10 楼wwqna(york)回复于 2004-12-03 11:48:22 得分 0

'从网页表格中读入数据  
  Private   Sub   Command1_Click()  
    Dim   vDoc,   vTag,   coll  
          Dim   i   As   Integer  
          Dim   j   As   Integer  
          Set   vDoc   =   ie.Document  
          Dim   mstrcell   As   String  
          Set   coll   =   vDoc.All("19")  
          For   i   =   0   To   coll.rows.length   -   1  
                  For   j   =   0   To   coll.rows(i).cells.length   -   1  
                          mstrcell   =   mstrcell   &   Space(4)   &   coll.rows(i).cells(j).innertext  
                  Next   j  
                  Debug.Print   mstrcell  
                  mstrcell   =   ""  
          Next   i  
  End   Sub  
   
  Private   Sub   Form_Load()  
          ie.Navigate   "E:\1.htm"  
  End   Sub  
   
   
  htm内容  
   
  <TABLE   id=19   BORDER=1   WIDTH=80%>  
  <THEAD>  
  <TR>  
  <TH>Heading   1</TH>  
  <TH>Heading   2</TH>  
  </TR>  
  </THEAD>  
  <TBODY>  
  <TR>  
  <TD>Row   1,   Column   1   text.</TD>  
  <TD>Row   1,   Column   2   text.</TD>  
  </TR>  
  <TR>  
  <TD>Row   2,   Column   1   text.</TD>  
  <TD>Row   2,   Column   2   text.</TD>  
  </TR>  
  </TBODY>  
  </TABLE>  
  Top

11 楼wildroseck(切)回复于 2004-12-03 11:49:02 得分 0

我用字符串来读,不是乱码  
  但是字符串长度有限制啊  
  HTML比较多,读不完整Top

12 楼wildroseck(切)回复于 2004-12-03 11:51:03 得分 0

wwqna(york)   :  
  这个程序每读一个网页还要先打开一个网页  
  那我要读10000页  
  是不是会慢死啊Top

13 楼fishzone(阿愚@脸上有疤)回复于 2004-12-03 11:55:23 得分 0

microsoft   internet   controls    
  就在你那个inet控件的引用上面一行  
   
  开始下载  
          WebBrowser1.Silent   =   True  
          WebBrowser1.Navigate2   txtURL1.Text  
   
  下载完之后开始读入字符串。  
   
  Private   Sub   WebBrowser1_DocumentComplete(ByVal   pDisp   As   Object,   URL   As   Variant)  
           
          labStatus.Caption   =   "完成"  
          Dim   strHtml   As   String  
           
          strHtml   =   WebBrowser1.Document.body.innerHTML  
  end   subTop

14 楼fishzone(阿愚@脸上有疤)回复于 2004-12-03 11:59:21 得分 0

效果就跟你IE中一页一页的点那是一样的,区别只在于人手跟机器自动帮你做。Top

15 楼wildroseck(切)回复于 2004-12-03 12:50:29 得分 0

楼上的  
  你那个strHTML这个string型的变量好象存不完整张网页的HTML代码吧Top

16 楼fishzone(阿愚@脸上有疤)回复于 2004-12-03 13:24:39 得分 0

应该没有问题吧,  
  加上这两句:  
   
          If   Len(strHtml)   >   10000   Then  
                  Debug.Print   URL  
                  Debug.Print   Len(strHtml)  
          End   If  
   
  我拿新浪首页测了一下,180多K的页没有问题。  
   
  http://www.sina.com.cn/allnews/ddt/ddt.html  
    184822    
  http://www.sina.com.cn/  
    184822    
   
  http://101.adsina.allyes.com/main/adfshow?user=AFP6_for_SINA|home|hometextleft10&db=sina&border=0&local=yes  
    178546    
  没有找到关于string的长度限制资料,问问其他高人吧Top

17 楼wwqna(york)回复于 2004-12-03 15:44:16 得分 0

这还不是一样的吗?如果你觉得那样更块的话,那你就用字符检测的方法好了Top

相关问题

  • 字段截取!!!
  • Blob字段读取问题
  • 读取交叉表字段
  • CLOB字段的读取
  • CLOB字段的读取
  • 求助各位老大,如何读取access的长二进制字段并显示?
  • 如何随机读取字段值
  • 如何读取计算字段的值?
  • Blob字段读取的问题
  • ACCESS备注字段的读取问题

关键词

  • 网页
  • 控件
  • sina
  • 循环
  • debug
  • 信息
  • mstrcell
  • 愠楬湧
  • 楷瑤
  • 敨杩瑨

得分解答快速导航

  • 帖主:wildroseck

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo