spider

原创 2007年09月25日 00:16:00
通过程序自动的读取其它网站网页显示的信息,类似于爬虫程序。比方说我们有一个系统,要提取BaiDu网站上歌曲搜索排名。分析系统在根据得到的数据进行数据分析。为业务提供参考数据。
  为了完成以上的需求,我们就需要模拟浏览器浏览网页,得到页面的数据在进行分析,最后把分析的结构,即整理好的数据写入数据库。那么我们的思路就是:
  1、发送HttpRequest请求。
  2、接收HttpResponse返回的结果。得到特定页面的html源文件。
  3、取出包含数据的那一部分源码。
  4、根据html源码生成HtmlDocument,循环取出数据。
  5、写入数据库。

程序如下:  

        //根据Url地址得到网页的html源码
        private string GetWebContent(string Url)
        {
            string strResult="";
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
    //声明一个HttpWebRequest请求
                request.Timeout = 30000;
                //设置连接超时时间
                request.Headers.Set("Pragma", "no-cache");
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream streamReceive = response.GetResponseStream();
                Encoding encoding = Encoding.GetEncoding("GB2312");
                StreamReader streamReader = new StreamReader(streamReceive, encoding);
                strResult = streamReader.ReadToEnd();
            }
            catch
            {
                MessageBox.Show("出错");
            }
            return strResult;
        }
为了使用HttpWebRequest和HttpWebResponse,需填名字空间引用
  using System.Net;

以下是程序具体实现过程:
 private void button1_Click(object sender, EventArgs e)
        {
            //要抓取的URL地址
            string Url = "http://list.mp3.baidu.com/topso/mp3topsong.html?id=1#top2";

            //得到指定Url的源码
   string strWebContent = GetWebContent(Url);

            richTextBox1.Text = strWebContent;
   //取出和数据有关的那段源码
            int iBodyStart = strWebContent.IndexOf("<body", 0);
            int iStart = strWebContent.IndexOf("歌曲TOP500", iBodyStart);
            int iTableStart = strWebContent.IndexOf("<table", iStart);
            int iTableEnd = strWebContent.IndexOf("</table>", iTableStart);
            string strWeb = strWebContent.Substring(iTableStart, iTableEnd - iTableStart + 8);

            //生成HtmlDocument
   WebBrowser webb = new WebBrowser();
            webb.Navigate("about:blank");
            HtmlDocument htmldoc = webb.Document.OpenNew(true);
            htmldoc.Write(strWeb);
            HtmlElementCollection htmlTR = htmldoc.GetElementsByTagName("TR");
            foreach (HtmlElement tr in htmlTR)
            {
                string strID = tr.GetElementsByTagName("TD")[0].InnerText;
                string strName = SplitName(tr.GetElementsByTagName("TD")[1].InnerText, "MusicName");
                string strSinger = SplitName(tr.GetElementsByTagName("TD")[1].InnerText, "Singer");
                strID = strID.Replace(".", "");
                //插入DataTable
                AddLine(strID, strName, strSinger,"0");

                string strID1 = tr.GetElementsByTagName("TD")[2].InnerText;
                string strName1 = SplitName(tr.GetElementsByTagName("TD")[3].InnerText, "MusicName");
                string strSinger1 = SplitName(tr.GetElementsByTagName("TD")[3].InnerText, "Singer");
                //插入DataTable
                strID1 = strID1.Replace(".", "");
                AddLine(strID1, strName1, strSinger1,"0");

                string strID2 = tr.GetElementsByTagName("TD")[4].InnerText;
                string strName2 = SplitName(tr.GetElementsByTagName("TD")[5].InnerText, "MusicName");
                string strSinger2 = SplitName(tr.GetElementsByTagName("TD")[5].InnerText, "Singer");
                //插入DataTable
                strID2 = strID2.Replace(".", "");
                AddLine(strID2, strName2, strSinger2,"0");

            }
            //插入数据库
            InsertData(dt);
   
            dataGridView1.DataSource = dt.DefaultView;
}
 


 

spider solitaire

  • 2012年11月10日 18:21
  • 131KB
  • 下载

Smart Spider mp3

  • 2014年04月29日 17:17
  • 69KB
  • 下载

Scrapy笔记(3)- Spider详解

Spider是爬虫框架的核心,爬取流程如下: 先初始化请求URL列表,并指定下载后处理response的回调函数。初次请求URL通过start_urls指定,调用start_requests()...
  • sdulsj
  • sdulsj
  • 2016年10月31日 17:55
  • 1002

网络爬虫 C++ Crawler Spider

  • 2009年05月31日 00:14
  • 4.54MB
  • 下载

spider.rar蜘蛛牌_快来玩呀

  • 2009年07月31日 11:31
  • 215KB
  • 下载

C#多线程网页采集器(Spider)

这是一个C#语言编写的多线程网页自动采集程序。下面展示了主要类的代码。完整代码请点此下载。 转自:http://www.cnblogs.com/closetome/articles/171176...
  • my98800
  • my98800
  • 2016年04月05日 08:30
  • 982

spider网络爬虫

  • 2013年05月03日 09:02
  • 2.18MB
  • 下载

网络爬虫之Spider

  • 2008年06月23日 08:53
  • 16KB
  • 下载

【搜索引擎基础】spider

一、概念 Spider又叫WebCrawler或者Robot,是一个沿着链接漫游Web 文档集合的程序。它一般驻留在服务器上,通过给定的一些URL,利用HTTP等标准协议读取相应文档,然后以文档中包...

AE-Optical_Flares_1.0.108_Crack_Spider

  • 2013年01月10日 11:57
  • 38.53MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spider
举报原因:
原因补充:

(最多只允许输入30个字)