社区
C#
帖子详情
求C#提取网页正文内容代码
renyu6277
2007-05-11 03:54:47
哪位大虾有C#提取网页正文内容的代码,可不可以发上来我参考参考。谢谢啦!!
...全文
917
13
打赏
收藏
求C#提取网页正文内容代码
哪位大虾有C#提取网页正文内容的代码,可不可以发上来我参考参考。谢谢啦!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
grady.lu
2007-05-11
打赏
举报
回复
真不明白,你是要怎么提取?不同的网页提取的正则表达式完全不一样。如果是同一种类型的网页,就需要写一个表达式。
zhangliu_521
2007-05-11
打赏
举报
回复
(?#Copyright 2005, by Laser Lu.)(?<Style_Block>(?<begin>\<(?<tag>style)(?:\s+(?<attribute>[\w-:]+)(?:=(?<value>[^\s\>\<]*|\"[\s\S]*?\"|\'[\s\S]*?\'))?)*\s*(?:/)?\>)(?<body>[\s\S]*?)(?<end>\</\k<tag>\>))|(?<Script_Block>(?<begin>\<(?<tag>script)(?:\s+(?<attribute>[\w-:]+)(?:=(?<value>[^\s\>\<]*|\"[\s\S]*?\"|\'[\s\S]*?\'))?)*\s*(?:/)?\>)(?<body>[\s\S]*?)(?<end>\</\k<tag>\>))|(?<Xml_Directive>\<!(?<name>[\w-:]+)(?:\s+(?<argument>[\w-:]+|\"[\s\S]*?\"|\'[\s\S]*?\'))*\s*\>)|(?<Xml_Comment>\<!--[\s\S]*?--\>)|(?<Beginning_Tag>\<(?<tag>[\w-:]+)(?:\s+(?<attribute>[\w-:]+)(?:=(?<value>[^\s\>\<]*|\"[\s\S]*?\"|\'[\s\S]*?\'))?)*\s*(?:/)?\>)|(?<Ending_Tag>\</(?<tag>[\w-:]+)\>)|(?<Xml_CDATA>\<!\[CDATA\[(?<data>[\s\S]*?)\]\]\>)|(?<Xml_Literal>(?:(?<blank>[ ]+)|[^ \<\>])+)
Fan52027
2007-05-11
打赏
举报
回复
1.用正则。
2.string.substring(),string.indexof(),etc.
swife
2007-05-11
打赏
举报
回复
用正则表达是提取符合条件的内容
zhangliu_521
2007-05-11
打赏
举报
回复
你总得给出,你源码的格式嘛...
几乎一样,还是很多,不怎么一样啊
renyu6277
2007-05-11
打赏
举报
回复
补充一下,网页我已经下载了,现在只是要提取网页里面的正文内容。
zhangliu_521
2007-05-11
打赏
举报
回复
多线程,还能处理,网络连接异常的...
purplesunshine
2007-05-11
打赏
举报
回复
public static int saveHtmlFile(string url,string filename)
{
int status = -1;
string respHTML = string.Empty;
StreamWriter sw = null;
try
{
if(ReadHttp(url,ref respHTML)=="OK")
{
if(File.Exists(filename))
{
File.Copy(filename,filename+".bak",true);
}
sw = new StreamWriter(filename,false,Encoding.GetEncoding("GB2312"));
sw.WriteLine(respHTML);
sw.Close();
status = 0;
}
else
{
System.Web.HttpContext.Current.Response.Write("找不到该页或服务器错误");
}
}
catch(Exception err)
{
System.Web.HttpContext.Current.Response.Write(err.Message);
status = -1;
}
finally
{
if (sw != null)
{
sw.Close();
}
}
return(status);
}
public static string ReadHttp(string url,ref string content)
{
string status="ERROR";
HttpWebRequest Webreq = (HttpWebRequest) WebRequest.Create(url);
HttpWebResponse Webresp=null;
StreamReader strm = null;
try
{
Webresp = (HttpWebResponse) Webreq.GetResponse();
status = Webresp.StatusCode.ToString();
strm = new StreamReader(Webresp.GetResponseStream(),Encoding.GetEncoding("GB2312"));
content = strm.ReadToEnd();
}
catch
{
}
finally
{
if(Webresp != null) Webresp.Close();
if(strm != null) strm.Close();
}
return(status);
}
zbw9119
2007-05-11
打赏
举报
回复
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET"; or "POST"
req.ContentType = "application/x-www-form-urlencoded";
Stream ReceiveStream = res.GetResponseStream();
kkun_3yue3
2007-05-11
打赏
举报
回复
/// <summary>
/// 重载GetData函数,多线程调用该函数
/// </summary>
/// <param name="en"></param>
public void GetDataOnline()
{
#region 在线程中用到的查询函数
DCurrentState oDCurrentState = new DCurrentState(CurrentState);//声明代理
this.Invoke(oDCurrentState, "Doing", null);
Thread.Sleep(100);
string en = this.textBox1.Text.ToString();
WebRequest oRequest = WebRequest.Create("http://dict.cn/search/?q=" + en);
//oRequest.Timeout = 800;超时时间
WebResponse oResponse = oRequest.GetResponse();
Stream oStream = oResponse.GetResponseStream();
StreamReader oReader = new StreamReader(oStream, Encoding.Default);
string oGetData = oReader.ReadToEnd();
string oRegexPat = @"<big><font\040size=\""2\""\040face=\""Trebuchet\040MS\"">([\w\W]*?)</big>";
Regex oRegex = new Regex(oRegexPat, RegexOptions.IgnoreCase);
Match oMatch = oRegex.Match(oGetData);
#endregion
#region 如果匹配成功
if (oMatch.Success)
{
string[] CurrentData = oRegex.Split(oGetData);
if (CurrentData[1].IndexOf("对不起") >= 0 || CurrentData[1].IndexOf("单词没找到") >= 0)
{
//没有查询到该单词
this.Invoke(oDCurrentState, "Failure", " ");
return;
}
else
{
//查询到有数据,如果自动更新开关为on,
if (this.autoUpdate.Checked)
{
#region 更新本地数据
this.Invoke(oDCurrentState, "Updated", CurrentData[1].Replace("<br>", "\r\n"));
Dict d = new Dict(en);
d._En = en;
d._Cn = CurrentData[1];
d.Update(d);
#endregion
}
else
{
#region 保存结果
this.Invoke(oDCurrentState, "Finish", CurrentData[1].Replace("<br>", "\r\n"));
Dict d = new Dict(en);
d._En = en;
d._Cn = CurrentData[1];
try
{
d.Insert(d);
}
catch (Exception exception)
{
throw exception;
}
finally
{
d = null;
}
#endregion
}
return;
}
}
#endregion
return;
}
Avoid
2007-05-11
打赏
举报
回复
现在用WebBrowser+HtmlDocument
Avoid
2007-05-11
打赏
举报
回复
以前天天写
HttpWebRequest
Red_angelX
2007-05-11
打赏
举报
回复
论坛搜索
HttpWebRequest
C#
从指定的网站
提取
网页
内容
具体从http://www.veryhuo.com
提取
中间演示textarea内的html文本,从(
网页
特效
代码
)->(详细分类)->html
网页
中textarea
内容
,程序内使用了1.多线程 2.正则表达式 3.web文件读取 4.本地文件保存及编码问题。线程挂起没...
C#
抓取
网页
股票年报数据程序源
代码
标题中的"
C#
抓取
网页
股票年报数据程序源
代码
"指的是一个使用
C#
编程语言开发的软件应用程序,其主要功能是从互联网上的
网页
中抓取股票年报的相关数据。在信息技术领域,这种程序通常被称为网络爬虫或者
网页
抓取工具,...
C#
代码
直接显示
网页
,能够读取
网页
内容
!
在
C#
编程中,直接显示...通过理解和应用这些知识点,你就可以在
C#
中实现显示
网页
并读取其
内容
的功能了。这在开发网络爬虫、
网页
抓取工具或集成Web服务的应用中非常有用。记住,始终要以合法和尊重的方式处理网络数据。
C#
编写的程序——
提取
网页
源
代码
本项目聚焦于使用
C#
来实现一个功能,即从互联网上
提取
并保存
网页
的源
代码
。这个功能在数据抓取、
网页
分析、自动化测试等场景中有着重要的应用。 首先,我们要理解
C#
如何与网络交互。在
C#
中,我们可以利用`System...
C#
获取
网页
内容
代码
在提供的压缩包文件“
网页
内容
抓取”中,可能包含了完整的示例
代码
或更复杂的
网页
抓取逻辑,如处理JavaScript渲染的
内容
(使用Headless浏览器如Selenium),或者处理分页和动态加载。学习和理解这些
代码
可以帮助你更...
C#
110,962
社区成员
642,610
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章