C#页面抓取信息

//根据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;
}
时间: 2024-08-25 07:45:19

C#页面抓取信息的相关文章

php爬虫抓取信息及反爬虫相关

58爬虫了百姓,赶集和58互爬,最后各种信息相同,都是爬虫后的数据库调用,潜规则啊,几家独大还暗中各种攻击,赶驴网的幽默事例我不想多评价.这个时代是砸.钱*养.钱的时代,各种姚晨杨幂葛优,各种地铁公车广告,各种卫视广告,铺天盖地~~~ 来谈php爬虫抓取信息~~ php爬虫首推Curl函数了,先来认识下它. 0x01.curl扩展的安装: 1.确保php子文件夹ext里面有php_curl.dll(一般都有的,一般配置时候会设置环境变量的) 2.将php.ini里面的;extension=php

java练习题(字符串类):显示4位验证码、输出年月日、从XML中抓取信息

1.显示4位验证码 注:大小写字母.数字混合 public static void main(String[] args) { String s="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//设定验证码的集合 String s1=""; for(int i=0;i<4;i++){ int n=(int)(Math.random()*1000)%s.length();//取余

java 网页页面抓取标题和正文

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.reg

Java HTML页面抓取实例

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class Url

从web抓取信息

"web抓取"是一个术语,即利用程序下载并处理来自web的内容. ▎在python中,有几个模块能让抓取网页变得很容易. webbrowser:python自带,打开游览器获取指定页面. requests:从因特网上下载文件和网页. Beautiful Soup:解析HTML,即网页编写的格式. selenium:启动并控制一个web游览器.selenium能够填写表单,并模拟鼠标在这个游览器中点击. webbrowser模块 webbrowser模块的open()函数可以启动一个新游

python爬虫14--Selenium动态渲染页面抓取

1.声明浏览器对象 from selenium import webdriver browser = webdriver.Chrome() # browser = webdriver.Firefox() # browser = webdriver.Edge() 2.访问页面 from selenium import webdriver browser = webdriver.Chrome() url = 'http://www.baidu.com' browser.get(url) print(

网页抓取信息(php正则表达式、php操作excel)

1.问题描述 实现对固定网页上自己需要的信息抓取,以表格形式存储.我是拿wustoj上的一个排行榜来练习的,地址:wustoj 2.思路 网页自己就简单学习了一下php,刚好用它来做点事情吧,我的想法是这样的: (1)查看网页源代码并保存在文件中. (2)根据需要的信息写出正则表达式,读文件,根据正则表达式来提取需要的信息.写正则表达式的时候最好分组,这样提取起来就方便了很多. (3)对excel操作,将提取的信息以excel的形式输出. 比较好的开源php处理excel类链接:点击打开链接 3

网页抓取信息(php正則表達式、php操作excel)

1.问题描写叙述 实现对固定网页上自己须要的信息抓取,以表格形式存储. 我是拿wustoj上的一个排行榜来练习的,地址:wustoj 2.思路 网页自己就简单学习了一下php,刚好用它来做点事情吧,我的想法是这种: (1)查看网页源码并保存在文件里. (2)依据须要的信息写出正則表達式.读文件,依据正則表達式来提取须要的信息.写正則表達式的时候最好分组,这样提取起来就方便了非常多. (3)对excel操作.将提取的信息以excel的形式输出. 比較好的开源php处理excel类链接:点击打开链接

scrapy爬虫-1-初试页面抓取

本文目标从初建scrapy工程到抓取一个论坛页面,涉及问题: 1.F12页面调试 2.xpath 3.输出抓取数据 创建工程 scrapy [object Object]startproject [object Object]tutorial 代码简单仅需修改items.py,spiders/xianzhenyuan_spider.py  2个文件,先列出代码,后再写调试步骤. items.py # -*- coding: utf-8 -*- import scrapy from scrapy.