如何用vc自动抓取网页,并分析其内容?(像网络蜘蛛那样?)

解决方案 »

  1.   

    估计超级烦, 看你自己的应用了,如果只是要一些特殊的Tag的话,还可以小弄弄
      

  2.   

    一般而言,大的网站都是使用模版生成的网页,某类网页中一定可以找到独一无二的标记:比如<div xxx="xxx">,或者<td id="XXXX">、<span class="xxxx">之类的,要将网页的内容解析出来是可以的,但很麻烦,我写过一个新闻解析的自动程序,每天定时自动从我定义的各类索引页面中下载信息(包括图片),添加到自己的数据库中,大大节省人力:)
    讨厌的是,如果你定义的网站更换了模版,你就要改写代码
    流程通常为:
    1、定义一个索引库,将索引分类,各类使用各自的解析例程,添加你要去下载的索引,相对固定
    2、定义一个Url库,将索引页面的更新信息定时取回来,解析成:标题,日期,URL,来源,类别,等,当然还要有一个字段,就是是否已经被下载
    3、你自己的数据库,从URL库中读取没有下载的,一个一个取下载解析所以你的程序:
    1、多线程的
    2、必须首先实现索引解析
    3、通过索引解析,获取信息页面,进行真实数据的解析,将图片、文字等有用信息放到自己的数据库里
      

  3.   

    如果你不需要保存原始数据(裸数据)到自己的数据库中,那样的程序是很简单的
    因为,你只需要分析页面的关键标记,比如<a ..><XXX src=...>等,对这些标记改写并下载资源,存放在本地就OK了,完整地将一个网站下载下来,需要解析的东东不多
      

  4.   

    http://www.kehui.net/html/article/42/42928.html
      

  5.   

    你用xmlhttp加webbrowser就好了,这个方法我常使用的http://rabbit.inu.com.cn/这个就是我对csdn的faq页进行分析做出来的,觉得好的话,帮我顶贴,嘿嘿http://community.csdn.net/Expert/topic/4191/4191119.xml?temp=.4787561
      

  6.   

    1.用BHO插件,通过插件得到文档对象指针
    2.用WM_HTML_GETOBJECT
    IHTMLDocument2* pDoc2 = NULL;
    LRESULT lRes;
    HINSTANCE hInst = ::LoadLibrary( _T("OLEACC.DLL") ); UINT nMsg = ::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") );
    ::SendMessageTimeout(hWnd, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&lRes );
    LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress( hInst, _T("ObjectFromLresult") );
    if ( pfObjectFromLresult != NULL )
    {
    HRESULT hr;
    IHTMLDocument2* pDoc;
    hr = (*pfObjectFromLresult)( lRes, IID_IHTMLDocument, 0, (void**)&pDoc);
    if ( SUCCEEDED(hr) )
    {
                         .....
      

  7.   

    还有一个问题,就是如果我要访问网站的某个页面,而这个页面是由上一个页面提交表单产生的结果页面(也就是说这个页面的显式地址是不含有参数的,即不能直接访问得到),那我怎么才能得到这个结果页面呢?除非你对这个结构很了解,用xmlhttp的post方法,去提交,以我自己做的网页为例子,如果你对我的网站很熟悉的话,可以这么做的,比如有用户名,密码的,这个就是对这类蜘蛛的屏蔽,不能所有的东西都让蜘蛛爬到,要那样的话,还要我们干什么的,呵呵其实像我做的蜘蛛,就比较简单了,以前跟另外一个mvp讨论过这个问题,当时我想出来了好多种方法,他叫我用xmlhttp的,我想了想,反正这种方法比较熟悉,就是了
      

  8.   

    还有结帖的时候给我5分就够,呵呵,我在csdn上的第八个中级用户社区了,昨天拿到了第五个星星了以后如果没什么事的话,会来vc版抢分的
      

  9.   

    参考msdn.microsoft.com/archive/en-us/samples/internet/browser/walkall/default.asp
    用mshtml来解析网页
      

  10.   

    我们现在正在做着方面的,先把网页中得所有链接解析出来,然后用抓取对应的网页,存到数据库,然后把数据库中的网页数据读出来,根据tag进行解析,当然如果你想很完整地分析web页面的话,可以使用DOM模型,vckbase.com上有很多类似的源码。
    ------------------------------------
    努力学习xslt中...
      

  11.   

    COM接口IHTMLDocument2,有很多现成代码。