• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 求网络爬虫实现的思路或者源码

求网络爬虫实现的思路或者源码

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了网络爬虫源码,网络爬虫算法源码,java网络爬虫源码,python爬虫源码,爬虫源码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 求网络爬虫实现的思路或者源码
描述:

在此先说声谢谢~~
用户输入:一个互联网URL
功能:1、分析URL所在文件的所有链接,包括图片链接、网页链接、脚本以及其它,并且将所有分析到文件下载下来,保存在  本地,,再将所有链接用链表的形式保存。
      2、将链表中网页连接的url作为新的一个主URL,重复功能1,知道满足深度要求停止工作。
我现在的思路:
        使用Microsoft WebBrowser控件的navigate(url)函数来加载url,然后GetDocument函数加载文档,然后用Com自带的get_href(&String)来分析链接(个人感觉分析不是很全),具体实现代码
TCHAR HostName[2*MAX_PATH];
CComPtr<IDispatch> spDispatch;
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
CComPtr<IHTMLElementCollection> pElementCol,pElementIMG;
CComPtr<IHTMLAnchorElement> pLoct;
//m_ex.Navigate("http://www.baidu.com",NULL,NULL,NULL,NULL);
//Sleep(2000);
IDispatchPtr spDisp;
spDisp = m_ex.GetDocument();
pDoc2 = spDisp;
if (SUCCEEDED(pDoc2->get_links(&pElementCol)))
{
// AfxMessageBox("IHTMLElementCollection");
long p=0;
if(SUCCEEDED(pElementCol->get_length(&p)))
if(p!=0)
{   
m_LinksNum = m_LinksNum+p;
UpdateData(FALSE);
for(long i=0;i<=(p-1);i++)
{
if(i==21)
i=21;
CComBSTR String;
_variant_t index = i;
TRY
{
pElementCol->item( index, index, &spDispatch);
spDispatch->QueryInterface( IID_IHTMLAnchorElement,(void **) &pLoct);
if(pLoct)
pLoct->get_href(&String);
}
CATCH_ALL(e) {}
END_CATCH_ALL
ZeroMemory(HostName,2*MAX_PATH);
lstrcpy(HostName,_bstr_t(String)); 
//添加到列表
m_LinksList.InsertItem(i,HostName);
m_LinksList.SetCheck(i,TRUE);
if(pLoct)
pLoct->get_hostname(&String);
ZeroMemory(HostName,2*MAX_PATH);
lstrcpy(HostName,_bstr_t(String)); 
if(lstrlen(HostName))
{
m_LinksList.SetItemText(i,1,HostName);
Log(HostName );
Log("\r\n");
}
spDispatch.Release();
pLoct.Release();
}
}


解决方案1:

首先需要一个巨大的存储空间,来设计一个合适高效的数据管理系统

解决方案2:

网是又爬虫的介绍,http://subject.csdn.net/spider.htm

解决方案3:

lz要的是得到一个网页上的所有链接地址???


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 求网络爬虫实现的思路或者源码

相关文章

  • 2017-06-05 com传结构体参数,何时要用sequence,什么时候要用explicit
  • 2017-06-04 COM的初级问题
  • 2017-06-05 关于PeekMessage
  • 2017-06-04 有没有这样的map
  • 2017-06-05 我的VC++60程序文件夹里面的gallery的文件夹下面什么都没有
  • 2017-06-04 关于控件出错的问题
  • 2017-06-04 请问ActiveX怎样才能使控件的字体和容器的字体一样?
  • 2017-06-04 调用参数问题高手快来呀--
  • 2017-06-05 能不能把c文件编译成dll文件?
  • 2017-06-05 WH_CALLWNDPROC钩子问题!

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何实现两个进程之间实现同步???????????急急急
    • 怎么用钩子钩一个消息
    • VC中采用ODBC访问SQLSERVER2000数据库出现读取数据停止的现象
    • 复合文档函数StgCreateDocFile里面的STG是什么的缩写?
    • 谁能帮帮我,关于进程PID,关注!
    • 一个关于ATL数据库编程的疑惑,请快来援手
    • 我的用户接口线程的Run没反应了,但::GetExitCodeThread函数返回的却是STILL_ACTIVE???求救!!!
    • 如何得到桌面上当前要打印的文件名及全路径
    • 求助:有什么函数可以最小化到托盘的?
    • 一个编译的警告

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有