通过程序自动的读取其它网站网页显示的信息,类似于爬虫程序。比方说我们有一个系统,要提取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 +
;
//生成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;
}
分享到:
相关推荐
在C#中,抓取Web网页数据是一种常见的任务,通常用于数据分析、信息收集或构建爬虫程序。在给定的描述中,我们看到一个具体的例子,即从BaiDu网站提取歌曲搜索排名,并将这些数据存储到数据库中,以便进行业务分析。...
【标题】:“一个抓取Web网页爬虫软件” 在信息技术领域,网络爬虫(Web Crawler)是一种自动化程序,用于浏览互联网并收集信息。它按照一定的规则遍历网页,抓取其中的数据,常用于搜索引擎的索引构建、数据分析、...
基于Python的网页数据分析及可视化应用 本文主要介绍了基于Python的网页数据分析及可视化应用,旨在解决当前互联网上大量无效数据的问题,并利用Python技术实现数据搜集、分析和整理,并以可视化方式将抽象数据呈现...
网络爬虫(Web Crawler)是自动遍历互联网的程序,通过抓取网页内容并存储在本地,以供后续分析或建立索引。在网络爬虫的基本工作流程中,包括发起HTTP请求、解析HTML响应、提取所需数据以及可能的深度遍历等步骤。 ...
本项目“C#正则抓取网页数据”是一个示例,它演示了如何利用C#语言和正则表达式来从网页中提取有用的信息。通过这个demo,初学者和有经验的开发者都能增进对C#编程以及正则表达式应用的理解。 正则表达式(Regular ...
Web抓取,也称为网页抓取或网络爬虫,是一种自动化地从互联网上获取大量信息的技术。在Delphi中,我们可以使用 Indy 库或者 Wininet 库来实现HTTP请求,这两个库提供了丰富的API接口用于发送GET或POST请求,从而获取...
综合来看,这个项目展示了如何利用C#编程语言进行网页数据抓取,以及对抓取到的数据进行处理和存储,这对于数据分析、市场研究或是构建基于网页数据的应用都有重要意义。在实际操作中,还需要注意遵守网站的robots....
根据给定的信息,我们可以推断出这是一段与网页抓取和分析相关的代码,主要涉及的是一个用于抓取和分析网页内容的类。下面将基于这段描述和代码片段,总结和扩展相关的知识点。 ### 抓取和分析网页的类 #### 1. 类...
本主题聚焦于利用C#进行网页抓取、数据分析以及表格和图形生成,这些都是现代数据驱动应用的重要组成部分。 首先,我们要理解网页抓取的概念。网页抓取,也称为网络爬虫或数据抓取,是指通过自动化程序从互联网上...
在IT行业中,Python语言因其简洁明了的语法和强大的库支持而被广泛应用于网页数据抓取和数据分析领域。本主题将深入探讨如何使用Python进行网页数据抓取,并介绍如何利用这些数据创建表格,同时涉及CSS文件的生成和...
在本文中,我们将深入探讨如何使用C#语言来抓取网页数据,特别是在彩票数据查询方面的应用。C#是一种广泛用于开发Windows应用...通过理解并运用这些技术,开发者可以定制自己的彩票数据分析平台,满足各种业务需求。
从该文件中,我们可以提取到多个与Excel相关的知识点,包括Excel中的Web查询功能、使用VBA实现HTML数据抓取、使用HttpRequest实现HTML数据抓取、Excel中的数据更新、Excel中的数据分析和Excel中的数据 visualization...
在股票数据分析中,爬虫会解析网页上的HTML、XML或其他结构化数据,提取出股票代码、价格、交易量、开盘价、收盘价、最高价、最低价等关键指标。Yahoo Finance和MSN Money提供了丰富的股票信息,包括实时报价、公司...
一旦数据被提取,下一步通常是将其存储到数据库以便进一步分析。Java提供了多种数据库连接和操作库,如JDBC(Java Database Connectivity)。JDBC允许我们与各种类型的数据库(如MySQL、PostgreSQL等)交互。以下是...
在信息技术领域,这种程序通常被称为网络爬虫或者网页抓取工具,它能够自动化地遍历网页并提取所需信息,对于数据分析、市场研究或投资决策等场景非常有用。 描述中提到的"使用httprequest,httpresponse实现网页的...
在IT领域,网络数据抓取是一项重要的技能,尤其在数据分析、搜索引擎优化以及网站监控等方面有着广泛应用。PHP作为一款流行的服务器端脚本语言,其在网页数据抓取方面也有着强大的功能。本文将深入探讨如何使用PHP...
网页数据抓取,也称为网络爬虫或Web抓取,是通过自动化程序从互联网上抓取大量信息的过程。这种程序通常模拟浏览器行为,访问网页,解析HTML代码,并根据预设的规则提取特定数据。在这个案例中,"可自定义配置"意味...
这些操作在日常工作中非常常见,比如进行市场研究、数据分析或客户服务支持。 数据抓取是RPA中的一个重要环节,尤其在网络时代,大量的信息都存储在网页上。数据抓取技术可以帮助我们自动化收集、整理这些数据,为...
在IT行业中,Web程序抓取是一项常见的任务,用于自动化地从网站上收集和处理数据。这个过程涉及到多个技术环节,包括网络请求、HTML解析、数据提取以及数据存储。以下是对这些知识点的详细解释: 1. **网络请求**:...