博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net 网页抓取内容
阅读量:5288 次
发布时间:2019-06-14

本文共 2928 字,大约阅读时间需要 9 分钟。

网页抓取代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Net;using System.IO;using System.Text.RegularExpressions;using System.Text;namespace WSYL.Web.Common{    public static class GetSteamShipInfo    {        public static string GetWebSite(string steamshipname,int itype)        {            if (steamshipname == null || steamshipname.Trim() == "")                return null;            //step1: get html from url            string urlToCrawl = @"网址";            //generate http request            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(urlToCrawl);            //use GET method to get url's html            req.Method = "GET";            //use request to get response            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();            // 二〇一五年八月十二日 18:14:45 需要增加判断网页解析超时问题 防止网页假死            // string htmlCharset = "UTF-8";            string htmlCharset = "utf-8";            //use songtaste's html's charset GB2312 to decode html            //otherwise will return messy code            Encoding htmlEncoding = Encoding.GetEncoding(htmlCharset);            StreamReader sr = new StreamReader(resp.GetResponseStream(), htmlEncoding);            //read out the returned html            string respHtml = sr.ReadToEnd();            //第三种获取内容            //Match TitleMatch = Regex.Match(rtbExtractedHtml.Text.ToString(), "([^<]*)", RegexOptions.IgnoreCase | RegexOptions.Multiline); //需要获取的代码开始和结尾内容             Match TitleMatch2 = Regex.Match(respHtml.ToString(), "([^<]*)", RegexOptions.IgnoreCase | RegexOptions.Multiline);            // txbExtractedInfo.Text = TitleMatch2.Groups[1].Value+"/"+ TitleMatch2.Groups[2].Value;            if (TitleMatch2.Groups[1].Value.Length == 0 || TitleMatch2.Groups[1].Value=="")               return respHtml = "";            if(itype==0)            {                respHtml = TitleMatch2.Groups[1].Value.ToString();            }             if(itype==1)            {                respHtml = StripHtml(TitleMatch2.NextMatch().Value.ToString());            }             if (itype == 2)             {                 respHtml = TitleMatch2.Groups[1].Value + "/" + StripHtml(TitleMatch2.NextMatch().Value.ToString());             }            return  respHtml;        }        ///         /// 去除html标签和空格有些例外会使得去除不干净,所以建议连续两次转化。这样将Html标签转化为了空格。太多连续的空格会影响之后对字符串的操作        ///         /// 标签内容        /// 
private static string StripHtml(string strHtml) { Regex objRegExp = new Regex("<(.|\n)+?>"); string strOutput = objRegExp.Replace(strHtml, ""); strOutput = strOutput.Replace("<", "<"); strOutput = strOutput.Replace(">", ">"); //把所有空格变为一个空格 Regex r = new Regex(@"\s+"); strOutput = r.Replace(strOutput, " "); return strOutput.Trim(); } }}

 

转载于:https://www.cnblogs.com/zangdalei/p/5329428.html

你可能感兴趣的文章
(网页)AngularJS 参考手册
查看>>
uva 11468 Substring
查看>>
SoapUI、Jmeter、Postman三种接口测试工具的比较分析
查看>>
Android平台实现与Apache Tomcat服务器数据交互(MySql数据库)
查看>>
Cout vs printf---缓存与引用,流处理顺序(转ithzhang,知乎郝译钧)
查看>>
排座椅(seat)
查看>>
XOR Queries
查看>>
MSIL学习------从HelloWorld开始
查看>>
bzoj千题计划138:bzoj1432: [ZJOI2009]Function
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
BootStrap2学习日记2--将固定布局换成响应式布局
查看>>
实现自己的脚本语言ngscript之四:代码生成
查看>>
在Android中使用FlatBuffers(上篇)
查看>>
.net 基础面试题二
查看>>
Leetcode 107. Binary Tree Level Order Traversal II
查看>>
leetcode 347. Top K Frequent Elements
查看>>
S3C2440各类端口操作函数简介
查看>>
nil、Nil、NULL和NSNull的理解
查看>>
iOS 再谈 代理传值,block反向传值
查看>>
app后端设计(12)--图片的处理
查看>>