C#에서 정규식을 사용하여 웹 사이트 정보를 크롤링하는 방법에 대한 코드 예
이 글에서는 주로 C#Regular의 사용법을 소개합니다.표현식은 웹사이트 정보를 캡처하고, 웹페이지 정보에 대한 일반적인 크롤링 작업과 관련된 C#의 기술을 예제 형식으로 분석합니다. 필요한 경우 친구가
을 참조할 수 있습니다. 예제 C#에서 웹사이트 정보를 캡처하기 위해 정규식을 사용하는 방법은 참고용으로 공유됩니다. 자세한 내용은 다음과 같습니다.
다음은 JD.com 제품 세부정보 캡처의 예입니다. 🎜>1. JdRobber.cs 프로그램 클래스
public class JdRobber { /// <summary> /// 判断是否京东链接 /// </summary> /// <param name="param"></param> /// <returns></returns> public bool ValidationUrl(string url) { bool result = false; if (!String.IsNullOrEmpty(url)) { Regex regex = new Regex(@"^http://item.jd.com/\d+.html$"); Match match = regex.Match(url); if (match.Success) { result = true; } } return result; } /// <summary> /// 抓取京东信息 /// </summary> /// <param name="param"></param> /// <returns></returns> public void GetInfo(string url) { if (ValidationUrl(url)) { string htmlStr = WebHandler.GetHtmlStr(url, "Default"); if (!String.IsNullOrEmpty(htmlStr)) { string pattern = ""; //正则表达式 string sourceWebID = ""; //商品关键ID string title = ""; //标题 decimal price = 0; //价格 string picName = ""; //图片 //提取商品关键ID pattern = @"http://item.jd.com/(?<Object>\d+).html"; sourceWebID = WebHandler.GetRegexText(url, pattern); //提取标题 pattern = @"<p.*id=\""name\"".*>[\s\S]*<h1>(?<Object>.*?)</h1>"; title = WebHandler.GetRegexText(htmlStr, pattern); //提取图片 int begin = htmlStr.IndexOf("<p id=\"spec-n1\""); int end = htmlStr.IndexOf("</p>", begin + 1); if (begin > 0 && end > 0) { string subPicHtml = htmlStr.Substring(begin, end - begin); pattern = @"<img.*src=\""(?<Object>.*?)\"".*/>"; picName = WebHandler.GetRegexText(subPicHtml, pattern); } //提取价格 if (sourceWebID != "") { string priceUrl = @"http://p.3.cn/prices/get?skuid=J_" + sourceWebID + "&type=1"; string priceJson = WebHandler.GetHtmlStr(priceUrl, "Default"); pattern = @"\""p\"":\""(?<Object>\d+(\.\d{1,2})?)\"""; price = WebHandler.GetValidPrice(WebHandler.GetRegexText(priceJson, pattern)); } Console.WriteLine("商品名称:{0}", title); Console.WriteLine("图片:{0}", picName); Console.WriteLine("价格:{0}", price); } } } }
를 생성합니다. 2. WebHandler.cs 공용 메서드 클래스
/// <summary> /// 公共方法类 /// </summary> public class WebHandler { /// <summary> /// 获取网页的HTML码 /// </summary> /// <param name="url">链接地址</param> /// <param name="encoding">编码类型</param> /// <returns></returns> public static string GetHtmlStr(string url, string encoding) { string htmlStr = ""; try { if (!String.IsNullOrEmpty(url)) { WebRequest request = WebRequest.Create(url); //实例化WebRequest对象 WebResponse response = request.GetResponse(); //创建WebResponse对象 Stream datastream = response.GetResponseStream(); //创建流对象 Encoding ec = Encoding.Default; if (encoding == "UTF8") { ec = Encoding.UTF8; } else if (encoding == "Default") { ec = Encoding.Default; } StreamReader reader = new StreamReader(datastream, ec); htmlStr = reader.ReadToEnd(); //读取数据 reader.Close(); datastream.Close(); response.Close(); } } catch { } return htmlStr; } /// <summary> /// 获取正则表达式中的关键字 /// </summary> /// <param name="input">文本</param> /// <param name="pattern">表达式</param> /// <returns></returns> public static string GetRegexText(string input, string pattern) { string result = ""; if (!String.IsNullOrEmpty(input) && !String.IsNullOrEmpty(pattern)) { Regex regex = new Regex(pattern, RegexOptions.IgnoreCase); Match match = regex.Match(input); if (match.Success) { result = match.Groups["Object"].Value; } } return result; } /// <summary> /// 返回有效价格 /// </summary> /// <param name="strPrice"></param> /// <returns></returns> public static decimal GetValidPrice(string strPrice) { decimal price = 0; try { if (!String.IsNullOrEmpty(strPrice)) { Regex regex = new Regex(@"^\d+(\.\d{1,2})?$", RegexOptions.IgnoreCase); Match match = regex.Match(strPrice); if (match.Success) { price = decimal.Parse(strPrice); } } } catch { } return price; } }
위 내용은 C#에서 정규식을 사용하여 웹 사이트 정보를 크롤링하는 방법에 대한 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C#을 사용한 Active Directory 가이드. 여기에서는 소개와 구문 및 예제와 함께 C#에서 Active Directory가 작동하는 방식에 대해 설명합니다.

C#의 난수 생성기 가이드입니다. 여기서는 난수 생성기의 작동 방식, 의사 난수 및 보안 숫자의 개념에 대해 설명합니다.

C# 데이터 그리드 뷰 가이드. 여기서는 SQL 데이터베이스 또는 Excel 파일에서 데이터 그리드 보기를 로드하고 내보내는 방법에 대한 예를 설명합니다.

멀티 스레딩과 비동기식의 차이점은 멀티 스레딩이 동시에 여러 스레드를 실행하는 반면, 현재 스레드를 차단하지 않고 비동기식으로 작업을 수행한다는 것입니다. 멀티 스레딩은 컴퓨팅 집약적 인 작업에 사용되며 비동기식은 사용자 상호 작용에 사용됩니다. 멀티 스레딩의 장점은 컴퓨팅 성능을 향상시키는 것이지만 비동기의 장점은 UI 스레드를 차단하지 않는 것입니다. 멀티 스레딩 또는 비동기식을 선택하는 것은 작업의 특성에 따라 다릅니다. 계산 집약적 작업은 멀티 스레딩을 사용하고 외부 리소스와 상호 작용하고 UI 응답 성을 비동기식으로 유지 해야하는 작업을 사용합니다.
