C# 抓取网页Html源码 (网络爬虫)

摘要:
发现了很多的资料,不过真正能达到我需要,有用的资料--代码很难找。=null){sb.Append;}stringstr=sb.ToString().ToLower();stringstr_get=mid;intstart=0;while{ifbreak;stringstrResult=mid;ifbreak;else{lab[url]+=strResult;str_get=str_get.Substring;}}}privatestringmid{intiBodyStart=istr.IndexOf;//开始位置ifreturnnull;iBodyStart+=startString.Length;//第一次字符位置起的长度intiBodyEnd=istr.IndexOf;//第二次字符在第一次字符位置起的首次位置ifreturnnull;iBodyEnd+=endString.Length;//第二次字符位置起的长度stringstrResult=istr.Substring;returnstrResult;}privatestringmid{//初始化out参数,否则不能returniBodyEnd=0;intiBodyStart=istr.IndexOf;//开始位置ifreturnnull;iBodyStart+=startString.Length;//第一次字符位置起的长度iBodyEnd=istr.IndexOf;//第二次字符在第一次字符位置起的首次位置ifreturnnull;iBodyEnd+=endString.Length;//第二次字符位置起的长度stringstrResult=istr.Substring;returnstrResult;}好了,上面就是全部代码了,如果你想要运行出来的话,有些细节要自己修改下。

http://www.cnblogs.com/wxxian001/archive/2011/09/07/2169519.html

刚刚完成一个简单的网络爬虫,因为在做的时候在网上像无头苍蝇一样找资料。发现了很多的资料,不过真正能达到我需要,有用的资料--代码很难找。所以我想发这篇文章让一些要做这个功能的朋友少走一些弯路。

首先是抓取Html源码,并选择<ul class="post_list"> </ul>节点的href:要添加using System.IO;using System.Net;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
privatevoidSearch(stringurl)
{
stringrl;
WebRequest Request = WebRequest.Create(url.Trim());
WebResponse Response = Request.GetResponse();
Stream resStream = Response.GetResponseStream();
StreamReader sr =newStreamReader(resStream, Encoding.Default);
StringBuilder sb =newStringBuilder();
while((rl = sr.ReadLine()) !=null)
{
sb.Append(rl);
}
stringstr = sb.ToString().ToLower();
stringstr_get = mid(str,"<ul class="post_list">","</ul>");
intstart = 0;
while(true)
{
if(str_get ==null)
break;
stringstrResult = mid(str_get,"href="https://tool.4xseo.com/article/69253.html",""",outstart);
if(strResult ==null)
break;
else
{
lab[url] += strResult;
str_get = str_get.Substring(start);
}
}
}
privatestringmid(stringistr,stringstartString,stringendString)
{
intiBodyStart = istr.IndexOf(startString, 0);//开始位置
if(iBodyStart == -1)
returnnull;
iBodyStart += startString.Length;//第一次字符位置起的长度
intiBodyEnd = istr.IndexOf(endString, iBodyStart);//第二次字符在第一次字符位置起的首次位置
if(iBodyEnd == -1)
returnnull;
iBodyEnd += endString.Length;//第二次字符位置起的长度
stringstrResult = istr.Substring(iBodyStart, iBodyEnd - iBodyStart - 1);
returnstrResult;
}
privatestringmid(stringistr,stringstartString,stringendString,outintiBodyEnd)
{
//初始化out参数,否则不能return
iBodyEnd = 0;
intiBodyStart = istr.IndexOf(startString, 0);//开始位置
if(iBodyStart == -1)
returnnull;
iBodyStart += startString.Length;//第一次字符位置起的长度
iBodyEnd = istr.IndexOf(endString, iBodyStart);//第二次字符在第一次字符位置起的首次位置
if(iBodyEnd == -1)
returnnull;
iBodyEnd += endString.Length;//第二次字符位置起的长度
stringstrResult = istr.Substring(iBodyStart, iBodyEnd - iBodyStart - 1);
returnstrResult;
}

好了,上面就是全部代码了,如果你想要运行出来的话,有些细节要自己修改下。

免责声明:文章转载自《C# 抓取网页Html源码 (网络爬虫)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇bzoj2330: [SCOI2011]糖果(差分约束系统)Vue项目的全局环境设置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

深入Vue

摘要: Vue源码阅读第一步。 原文:深入vue - 源码目录及构建过程分析 公众号:前端小苑 Fundebug经授权转载,版权归原作者所有。 本文主要梳理一下vue代码的目录,以及vue代码构建流程,旨在对vue源码整体有一个认知,有助于后续对源码的阅读。 1. 目录结构 上图是对vue的代码的所有目录进行的梳理,其中源码位于src目录下,下面对...

VS2012_MVC4入门例子、代码视图分离办法、需要注意的坑爹问题等_被坑后不断更新此贴,要转载的话,请使用链接,不要转载内容

因为此贴会不断更新,所以,要转载的话,请使用链接,不要转载内容。 --------------------------------------------- 题外话: 用C#做网站,目前主要有两种模式:Asp.net网站,基于WebForm,和Mvc4 (mvc3、其他自定义框架就不谈了)。也就是做 xx.aspx页面,并且工具栏有一堆现成的.net服务器...

如何解决PC端和移动端自适应问题?

   做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决样式发生改变的情况,那么如何解决呢?现在主要是采用自适应来解决高度,宽度的,以及图片自适应问题,下面就PC端和移动端来总结一下,通常进行自适应高度和宽度,图片时,一般与页面的布局存在关系。 1、最小尺寸分辨率1024*768(传统17寸显示器),则可以采用940px、960...

前端基础总结

HTML初识 △HTML: 超文本标记语言,是一种用于创建网页的标记语言,不是编程语言,没有逻辑 本质上是浏览器可识别的规则 我们按照规则写网页,浏览器根据规则渲染我们的网页。对于不同的浏览器,对同一个标签可能会有不同的解释。(兼容性问题) 网页文件的扩展名:.html或.htm(没有区别) 网页文件的扩展名:.html或.htm(没有区别) 我们按照规则...

vue cli 3

介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 通过 @vue/cli 搭建交互式的项目脚手架。 通过 @vue/cli + @vue/cli-service-global 快速开始零配置原型开发。 一个运行时依赖 (@vue/cli-service) 一个开发环境依赖,局部安装在每个 @vue/cli 创建的项目中。 可升...

原生js操作dom的总结

一.学习DOM之前需要知道的 1.什么是window?  window:是一个全局对象, 代表浏览器中一个打开的窗口, 每个窗口都是一个window对象 2.什么是document?         document是window的一个属性, 这个属性是一个对象         document: 代表当前窗口中的整个网页,         docum...