VB.NET 只读取前几行网页源文件的方法[可追分]

问题描述

比如获取http://bbs.csdn.net/home的网页源文件<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlclass='csdn-bbs'><head><scriptid="allmobilize"charset="utf-8"src="http://a.yunshipei.com/1327c36bdd7197e30fd9f4b48d1a5bcc/allmobilize.min.js"></script><metahttp-equiv="Cache-Control"content="no-transform"/><linkrel="alternate"media="handheld"href="#"/><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>→<title>CSDN论坛首页-CSDN.NET-CSDN论坛-CSDN.NET-中国最大的IT技术社区</title><linkhref="/assets/index-d4be409d127e37381f8dd32f3df7a29d.css"media="screen"rel="stylesheet"type="text/css"/><linkhref="//static.csdn.net/public/themes/default/css/btn.css"media="screen"rel="stylesheet"type="text/css"/>→<scriptsrc="/assets/application-99904a9de34bdfafccfcb75f0ffbe29d.js"type="text/javascript"></script><linkhref="/assets/main-2b48a4310d11c3a55009510efa912fed.css"media="screen"rel="stylesheet"type="text/css"/><scriptsrc="http://counter.csdn.net/a/js/AreaCounter.js"type="text/javascript"charset="utf-8"></script><linkhref="http://c.csdnimg.cn/public/favicon.ico"rel="SHORTCUTICON"><linkrel="stylesheet"href="http://static.csdn.net/public/common/toolbar/css/index.css">…………省略1300行

我只需要读取到<title>CSDN论坛首页-CSDN.NET-CSDN论坛-CSDN.NET-中国最大的IT技术社区</title>或者<scriptsrc="/assets/application-99904a9de34bdfafccfcb75f0ffbe29d.js"type="text/javascript"></script>然后后面1300多行都不读取,直接停止,虽然完整获取时间只需要0.5秒,但乘上万、十万之后时间会大大增加,效率低下注意:单获取源文件这种我会,但是要可以读取到指定字符或行数时停止的DimXmlHttp,HtmlXmlHttp=CreateObject("MSxml2.XMLHTTP")XmlHttp.Open("GET","http://bbs.csdn.net/home",False)XmlHttp.Send()Html=XmlHttp.responseText

需要各位高手附上达到目的的声明过程和所要用到的控件或其他,越详细越好(最好能返回成string类型)PS:由于问题比较冷门所以分较少如果有能实现的,可追加到100分

解决方案

解决方案二:
参考:HowtoreadtheresponsestreambeforetheHttpresponsecompletes
解决方案三:
参考(基本上和上面的说的是同一种方案):Using.NETHttpClienttocapturepartialResponses
解决方案四:
引用2楼findcaiyzh的回复:

参考(基本上和上面的说的是同一种方案):Using.NETHttpClienttocapturepartialResponses

是这段的意思吗[TestMethod]publicasyncTaskHttpClientGetStreamTest(){stringurl="http://west-wind.com/presentations/DotnetWebRequest/DotNetWebREquest.htm";intsize=1000;using(varhttpclient=newHttpClient()){httpclient.DefaultRequestHeaders.Range=newRangeHeaderValue(0,size);varresponse=awaithttpclient.GetAsync(url,HttpCompletionOption.ResponseHeadersRead);using(varstream=awaitresponse.Content.ReadAsStreamAsync()){varbytes=newbyte[size];varbytesread=stream.Read(bytes,0,bytes.Length);stream.Close();}}}

能帮我转成VBnet不软件帮我转成这样,不能用[TestMethodUnknownpublicDimTaskAsasyncHttpClientGetStreamTest{DimurlAsString="http://west-wind.com/presentations/DotnetWebRequest/DotNetWebREquest.htm"DimsizeAsInteger=1000Imports(DimhttpclientAsvar=NewHttpClientDimresponseAsvar=awaitImports(DimstreamAsvar=awaitDimbytesreadAsvar=stream.Read(bytes,0,bytes.Length)stream.CloseUnknownUnknownUnknown

要是能实际运行成功就更好了,然后全部代码贴一下,我给你加分啊大神!
解决方案五:
还要考虑响应速度问题,最好一秒能获取100个左右的网址,当然,只截取前面几行比如用这种方法,完全代码响应速度大概是每秒4个DimMyClientAsNet.WebClient=NewNet.WebClientDimMyReaderAsNewSystem.IO.StreamReader(MyClient.OpenRead(“http://bbs.csdn.net/home”),System.Text.Encoding.UTF8)DimMyWebCodeAsString=MyReader.ReadToEndMyReader.Close()

而这种是3个或者2个DimXmlHttp,HtmlXmlHttp=CreateObject("MSxml2.XMLHTTP")XmlHttp.Open("GET","http://bbs.csdn.net/home",False)XmlHttp.Send()Html=XmlHttp.responseText

时间: 2024-10-02 17:46:41

VB.NET 只读取前几行网页源文件的方法[可追分]的相关文章

jQuery实现为LI列表前3行设置样式的方法【2种方法】_jquery

本文实例讲述了jQuery实现为LI列表前3行设置样式的方法.分享给大家供大家参考,具体如下: 在设计网页模板的时候,为了突出信息的重要性以及美观度,我们会设置一些样式使LI文章列表的前3行加上不同的样式,例如给LI文章列表的前3行文字颜色设置红色,再例如图片列表的时候设置列表第一张图片.第二张图片等的宽和高,都可以用蓝叶分享的这两种方法为LI列表设置样式:对于懂PHP语言的设计者来说,很容易就可以实现的效果,对于不懂PHP语言的可以使用这两种方法也很轻松的实现自己想要的各种效果. <!DOCT

编码-django取出pymongo中存储的中文图片路径后,读取该路径在网页上展示没有出现图片

问题描述 django取出pymongo中存储的中文图片路径后,读取该路径在网页上展示没有出现图片 问题是这样的: 我搭建的环境是:python2.7 + mongoengine + pymongo + django + Ubuntu14 python处理一些带有中文路径的图片,把这个路径存储在数据库pymongo中,保存的时候该路径是转换为:utf-8类型存储到数据库中,然后django通过mongoengine来连接pymongo的数据库,从中取出这个图片的路径, 希望向各位朋友们请教一下下

数据库取数据时怎么才能只取前10列的值

问题描述 数据库取数据时怎么才能只取前10列的值.不是前10行. 解决方案 解决方案二:不知道各个列的列名解决方案三:从系统表入手,表名称在sysobjects中,字段名称在syscolumns中,字段序号为syscolums.colidselecttop10b.namefromsysobjectsa,syscolumnsbwherea.id=b.idanda.xtype='U'anda.name='table_name'--此处换成要查找表名称orderbyb.colid 解决方案四:sele

listview加载数据前10行需要下拉才显示数据

问题描述 listview加载数据前10行需要下拉才显示数据 Listview数据量大,刚加载数据的时候,1-10行只显示布局不显示数据,往下拉才能慢慢显示1-10行的数据,这是为什么? 解决方案 没怎么用过SimpleAdapter,推荐你用ArrayAdapter,都可以解决的 解决方案二: 查查使用分页吧 效率高 尤其针对大量数据显示

PowerShell读取文本文件指定行内容的方法_PowerShell

本文介绍一个PowerShell中如何一步到位的获取到一个文本文件的第N行.比如一个文本文件,它有1000行,我想把第500行的内容直接取出来的,最简单的方法是通过PowerShell来实现. 在PowerShell中,可以通过Get-Content这个cmdlet来获取文本文件的内容.Get-Content将一个文本文件读取到一个数组中,每一个数组元素就是文件的一行内容.比如一个文本文件内容如下: 复制代码 代码如下: 111 222 333 那么,使用Get-Content获取到一个数组,数

VB.NET中读取INI文件设置信息函数sdGetIniInfo

函数 虽然VB.NET中读取XML配置信息很方便,但有时开发的过程中还是要用到INI文件,在VB.NET中读取INI却不像VB中那么方便了,刚才写了个函数,现贴出来,也许各位能用得上.     '函数名: sdGetIniInfo    '功能:读取INI文件设置信息    '参数说明:iniFile-->INI文件     iniSection--INI文件中设置的部分名称    '作者:SD    '日期:2005-10-11    'Email:ztqas@126.com    '备注:转

win7系统设置只读取指定的U盘而其他U盘不可用的方法

  win7系统设置只读取指定的U盘而其他U盘不可用的方法 1.把自己的U盘先插入到win7系统中,让系统可以正常使用U盘,接着进入"控制面板",双击"设备管理器",在里面展开"便携设备",可以看见里面有你的U盘. 2.在上面点击鼠标右键来选择"属性",在弹出的"属性"窗口中点击"详细信息"标签,然后在设备"属性"下拉框中选择"硬件ID",下面的&

Win7系统设置只读取指定U盘的方法(其它U盘不读取)

  小编很不喜欢别人的U盘接到我的电脑上,因为身边的朋友他们U盘老是有一些奇怪的软件和其他东西,而且U盘插入总是让我感觉电脑上的一些文件不安全!豆豆系统小编今天分享这个方法可以设置在win7系统下只读取制定U盘,其他U盘电脑都不读取!一起来看看设置方法把! 1:把自己的U盘先插入到win7系统中,让系统可以正常使用U盘,接着进入"控制面板",双击"设备管理器",在里面展开"便携设备",可以看见里面有你的U盘. 2:在上面点击鼠标右键来选择&quo

scala-spark中怎么将读取某几行数据合并成一行啊? 新手 谢谢 !

问题描述 spark中怎么将读取某几行数据合并成一行啊? 新手 谢谢 ! 例如图片里说的 谢谢啦 数据是读取的外部csv文件 麻烦啦 求大神指教一下 解决方案 sehll脚本将几行输出合并成一行显示 解决方案二: http://bbs.csdn.net/topics/391872110