写了一个简单的抓取网页数据的小例子,代码如下:

  //根据Url地址得到网页的html源码
private string GetWebContent(string Url)
{
string strResult = ""; ;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
     //声明一个HttpWebRequest请求
request.Timeout = ;
//设置连接超时时间
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
{ }
return strResult;
}
//为了使用HttpWebRequest和HttpWebResponse,需填名字空间引用 //以下是程序具体实现过程:
protected void btn_Click(object sender, EventArgs e)
{
//要抓取的URL地址
string Url = "http://www.awtrip.com/";
//得到指定Url的源码
string strWebContent = GetWebContent(Url);
//Response.Write(strWebContent);
//取出和数据有关的那段源码
int iBodyStart = strWebContent.IndexOf("<body", );
int iStart = strWebContent.IndexOf("热门目的地旅游", iBodyStart);
int iTableStart = strWebContent.IndexOf("<ul", iStart);
int iTableEnd = strWebContent.IndexOf("</ul>", 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("li");
StringBuilder strlist = new StringBuilder();
foreach (HtmlElement tr in htmlTR)
{
strlist.AppendFormat(tr.GetElementsByTagName("a")[].InnerText+"$");
}
Response.Write(strlist.ToString().Remove(strlist.ToString().Length-));
////最后再插入数据库 }

引用:

using System.Net;
using System.IO;
using System.Text;
using System.Windows.Forms;

运行时可能为遇到“当前线程不在单线程单元中,因此无法实例化 ActiveX 控件”的问题,把aspx页面顶部的AutoEventWireup设置为ture就可以了

最新文章

  1. java中的hashSet和Treeset的分析
  2. 解决At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this log
  3. 在同一个机器中安装LoadRunner与QTP
  4. EF6 CodeFirst 启用Migration,常用命令
  5. Servlet主要的作用
  6. 怎样在osg中动态的设置drawable的最近最远裁剪面
  7. PAT1034;Head of a Gang
  8. final 关键字与安全发布 多线程中篇(十三)
  9. 关于C#的new与override
  10. 美团面试-canvas实现放射图
  11. docker+jenkins+maven简单部署
  12. ThinkPHP 5.2 出 RC1 版本 RC 是什么意思呢?
  13. php支付宝接口 的使用
  14. 如何恢复windows的exe文件的默认打开方式
  15. 【转】java comparator 升序、降序、倒序从源码角度理解
  16. 微信 audio 获取 duration 为 NaN 的解决方法
  17. linq Distinct 去除重复数据
  18. HackerRank - candies 【贪心】
  19. 在线升级python3.3版本
  20. OpenCV 3.0.0处理鱼眼镜头信息 - Fisheye camera model

热门文章

  1. iphone的一些坑
  2. c++中的函数对象
  3. Eureka、Ribbon、Feign常见问题及解决
  4. Spring Boot入门——使用jsp
  5. nginx路由重定向
  6. PHP 5.2、5.3、5.4、5.5、5.6 版本区别对比以及新功能详解
  7. 在线显示office文件
  8. 理解WCF(第一部分,有參考他人)
  9. Kali 2.0 日常软件
  10. LeetCode OJ:Sort List(排序链表)