=波波日志 > Asp.Net/C#/WCF > AJax网络爬虫设计与实现=

AJax网络爬虫设计与实现

AJax网络爬虫设计与实现

关键字:
网络爬虫 网络蜘蛛 搜索引擎 ajax JavaScript 数据采集 webspider
  传统意义上的网络爬虫是不解析JavaScript生成的内容的,所以JavaScript+ajax生成的内容对于传统的搜索引擎很不友好,不利于SEO。

  本例子使用winForm编程中的WebBrowser控件来加载页面,并解析页面内容导入的JavaScript文件生成的页面内容,获取body的innerHTML,这样就不用害怕网络爬虫抓取不到ajax或者JavaScript动态生成的内容。对于要采集一些用JavaScript+ajax动态生成的网页,此例子可作为参考。不过最终要采集需要的数据,还得自己用正则表达式或者其他方法来分析采集下来的html代码,获取对自己有用的数据。
  
  由于使用b/s方法的iframe也可以实现上面的内容加载并解析,但由于浏览器存在跨域的安全问题,获取iframe中的内容时会出现安全问题,所以采用winForm编程。

  最近看到的一片文章说Google爬虫即将同时解析JavaScript或者ajax生成的内容,不知道是否真实。详细参考下面的文章。
  Google蜘蛛运行网页中JS和CSS样式


下面是本示例中核心代码
+展开
-C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace AjaxSpider
{
    public partial class main : Form
    {
        public main()
        {
            InitializeComponent();
            wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(onDocumentLoaded);
        }
        private void onDocumentLoaded(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            WebBrowser wb = sender as WebBrowser;
            if (wb != null) txtHTML.Text = wb.Document.Body.InnerHtml;
            btnDown.Enabled = true;
            btnDown.Text = "下载";
        }
        private void btnDown_Click(object sender, EventArgs e)
        {
            if (txtUrl.Text == "" || (!txtUrl.Text.StartsWith("http://") && !txtUrl.Text.StartsWith("https://")))
            {
                MessageBox.Show("请输入正确的URL地址!""提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtUrl.Select();
            }
            else
            {
                btnDown.Text = "正在解析页面...";
                btnDown.Enabled = false;
                wb.Navigate(txtUrl.Text);
            }
        }
    }
}

示例代码下载地址:Ajax WebSplider网络爬虫
类别:Asp.Net/C#/WCF 作者:波波 日期:2010-07-27 【评论:0】 
 
暂时没有评论!
发表留言
  • *昵称:
  • 头像:
  • 电子邮件: [留下您的邮件,方便管理员回复您。]
  • 个人网站: *验证码:
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!
Powered by showbo,©2012WEB编程网桂ICP备05005887号 京公网安备1101055090