自己写的一个抓取网页内容的小东西,但是不知道提示网页报错,求大神看看!

问题描述

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Net;usingSystem.IO;usingSystem.Text.RegularExpressions;namespaceConsoleApplication3{classProgram{staticvoidMain(string[]args){//stringurl="http://172.16.101.40";//stringhtml=getHtml(url,Encoding.UTF8);//Regexregex=newRegex("(?<=<title>).*?(?=</title>)");//MatchCollectionmatchCollection=regex.Matches(html);//Console.WriteLine(matchCollection[0].Value);//Console.WriteLine(matchCollection.Count);//Console.WriteLine(html);stringlisturl="http://www.admin5.com/browse/177/";stringlisthtml=getHtml(listurl,Encoding.Default);Regexrlist=newRegex("(?<=href=").*?(?=")");MatchCollectionco=rlist.Matches(listhtml);Console.WriteLine(co.Count);for(inti=0;i<co.Count;i++){if(co[i].Value.ToString().Contains("article")){Console.WriteLine("http://www.admin5.com/"+co[i].Value);Console.WriteLine("抓取内容中...");stringcontenthtml=getHtml("http://www.admin5.com/"+co[i].Value,Encoding.Default);Regexregex=newRegex("(?<=<title>).*?(?=</title>)");MatchCollectionmatchCollection=regex.Matches(contenthtml);//Console.WriteLine("标题:"+matchCollection[0].Value);RegexregexContent=newRegex("<divclass="content">[\s\S]*?</div>");MatchCollectionmatchCollectionContent=regexContent.Matches(contenthtml);//Console.WriteLine("内容:"+matchCollectionContent[0].Value);stringtitle=matchCollection[0].Value;stringcontent=matchCollectionContent[0].Value;Console.WriteLine("保存数据中...");stringdir=Directory.GetCurrentDirectory();if(!Directory.Exists(dir+"\data")){Directory.CreateDirectory(dir+"\data");}File.WriteAllText(dir+"\data"+"\"+i+".txt",title+content,Encoding.Default);Console.WriteLine("保存成功");}}Console.ReadLine();}publicstaticstringgetHtml(stringurl,Encodingencoding){WebClientmyweb=newWebClient();Streamstream=myweb.OpenRead(url);StreamReadersr=newStreamReader(stream,encoding);stringhtml=sr.ReadToEnd();returnhtml;}}}

解决方案

解决方案二:
1.WebClient有DownloadString方法可以直接下载2.请求网络数据建议带上trycatch因为结果是未知的
解决方案三:
引用1楼rayyu1989的回复:

1.WebClient有DownloadString方法可以直接下载2.请求网络数据建议带上trycatch因为结果是未知的

能说的详细一点吗?还是不太懂如何使用呢!
解决方案四:
引用1楼rayyu1989的回复:

1.WebClient有DownloadString方法可以直接下载2.请求网络数据建议带上trycatch因为结果是未知的

这是我的报错信息:未处理System.Net.WebExceptionMessage=远程服务器返回错误:(404)未找到。Source=SystemStackTrace:在System.Net.WebClient.OpenRead(Uriaddress)在System.Net.WebClient.OpenRead(Stringaddress)在ConsoleApplication3.Program.getHtml(Stringurl,Encodingencoding)位置d:C#ProjectConsoleApplication3ConsoleApplication3Program.cs:行号74在ConsoleApplication3.Program.Main(String[]args)位置d:C#ProjectConsoleApplication3ConsoleApplication3Program.cs:行号36在System.AppDomain._nExecuteAssembly(Assemblyassembly,String[]args)在System.AppDomain.ExecuteAssembly(StringassemblyFile,EvidenceassemblySecurity,String[]args)在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()在System.Threading.ThreadHelper.ThreadStart_Context(Objectstate)在System.Threading.ExecutionContext.Run(ExecutionContextexecutionContext,ContextCallbackcallback,Objectstate)在System.Threading.ThreadHelper.ThreadStart()InnerException:
解决方案五:
已经说的很清楚了,你请求的网页的结果是未知的如你现在的错误是网址404,还有501502各种状态,getHtml方法应该加上trycatch
解决方案六:
引用4楼rayyu1989的回复:

已经说的很清楚了,你请求的网页的结果是未知的如你现在的错误是网址404,还有501502各种状态,getHtml方法应该加上trycatch

好的谢啦!
解决方案七:
熟悉信息采集,有需要可联系

时间: 2024-09-12 05:42:22

自己写的一个抓取网页内容的小东西,但是不知道提示网页报错,求大神看看!的相关文章

sqlserver-尝试写了一个 JDBC 操作 SQLServer 的工具类,但是好像有问题,求大神帮忙指正

问题描述 尝试写了一个 JDBC 操作 SQLServer 的工具类,但是好像有问题,求大神帮忙指正 java新人,尝试写了一个 JDBC 操作 SQLServer 的工具类,但是好像有问题,调用 insert 指令没问题,而 select 指令出现如下报错: com.microsoft.sqlserver.jdbc.SQLServerException: ')' 附近有语法错误. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFr

HttpWebRequest抓取网页内容与直接输入URL得到的内容不一致!球大神帮忙!!

问题描述 一.前言我在做一个百度收录情况查询的软件,就是通过软件来批量查询文章链接是否被百度收录,主要是用来查询某个网址的收录次数还有网站的排行数,思路是借鉴别人的.二.问题描述首先需要考虑的是能够支持哪些搜索引擎的查询,首先是百度,然后是必应.搜狗.搜搜.360.本来想支持Google但是一想不对,根本不好访问的,所以暂时不算在内.而我们实际要做的就是根据一个网址能够检索出这个网址的在各个搜索引擎的收录次数以及在不同关键词下的网址排行,这里出入的只有网址还有若干的关键词,而输出则是该网址在不同

新手 求帮助 Hadoop下运行Wordcount报错 求大神拯救 折腾一个星期了

问题描述 $hadoopjarhadoop-examples-1.2.1.jarwordcountinputoutput15/11/1520:03:45ERRORsecurity.UserGroupInformation:PriviledgedActionExceptionas:Administratorcause:org.apache.hadoop.ipc.RemoteException:org.apache.hadoop.mapred.SafeModeException:JobTracker

c++ 写一个查询系统 ,不用数据库,从txt中读取数据,求大神指点啊 ...

问题描述 c++ 写一个查询系统 ,不用数据库,从txt中读取数据,求大神指点啊 ... 解决方案 你首先的规范text 文档的数据格式 ,然后通过文件流从文件中读取数据 解决方案二: 直接用ifstream读入,然后getline一行行读取,然后可以用sscanf格式化提取(因为你是用,分隔的) 可以把数据都存储下来(存在结构体数组或者vector都行) 之后再实现查找的功能

用java开发一个安卓客户端在线交流APP,是怎么实现添加好友的?求大神帮我看看这段代码。

问题描述 用java开发一个安卓客户端在线交流APP,是怎么实现添加好友的?求大神帮我看看这段代码. private void submit() { dialog = ProgressDialog.show(this, "提示", "处理中.."); new AsyncTask() { @Override protected String doInBackground(String... params) { String urlString = AppConstan

canvas-绘制了一个体温球,可是圆外也有绿色的波纹,求大神

问题描述 绘制了一个体温球,可是圆外也有绿色的波纹,求大神 安卓中能不能利用canvas能不能在正方形内,圆外的四个角画图啊?求大神指导 解决方案 平滑下再输出看看呢

ios-iOS 获取手机通讯录遍历时,只有一个联系人(获取到了所有联系人,可是遍历时出问题了)求大神帮忙

问题描述 iOS 获取手机通讯录遍历时,只有一个联系人(获取到了所有联系人,可是遍历时出问题了)求大神帮忙 #import "AddressBook.h" #import "pinyin.h"//将汉字转换成英文 #import "Person.h"//将联系人信息存储成一个一个的person //存储通讯录的类 @interface AddressBook () @end @implementation AddressBook static A

源代码-按书上写了一段代码java异常处理,不知道为什么不能运行,求大神指教

问题描述 按书上写了一段代码java异常处理,不知道为什么不能运行,求大神指教 源代码如下: package com.Sixping.Ncre; import java.io.*; public class ExceptionCatch { public static void main(String[] args) { try { FileNotFoundException fis = new FileNotFoundException("text"); System.out.pri

springmvc-做一个项目,用springMVC和mybatis,总有个错误,求大神帮忙

问题描述 做一个项目,用springMVC和mybatis,总有个错误,求大神帮忙 com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes. com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not c