정규 표현 식 을 사용 하여 콩잎 평론 전문 에 대한 연 구 를 얻 습 니 다.

13242 단어
필 자 는 책 을 읽 는 것 을 좋아 하고 콩짜개 위 를 자주 돌아 다 녔 다. 최근 에 야 콩짜개 가 제공 하 는 api 가 매우 재 미 있 는 것 을 발견 했다. 일이 없 을 때 연 구 를 했 는데 도서 의 검색, 정보 획득 과 평론 획득 이 모두 편리 하고 강력 한 api 이다.
콩짜개 api 를 기반 으로 한 강력 한 응용 프로그램 이 많이 생 겼 지만 머 릿 속 에는 자신 이 직접 만 들 겠 다 는 생각 이 떠 올 랐 다. 예 를 들 어 windows phone 에서 (많은 내용 을 배 워 야 한다. 잔 념 은 9582 ℃ (9583 ℃).
본론 으로 돌아가다.콩잎 api 를 시험 하 는 과정 에서 책 평론 을 얻 을 때 문제 가 있 습 니 다. 평론 요약 만 얻 을 수 있 고 평론 전문 을 얻 을 수 없습니다.이 점 은 골 치 아프다. 두 판 api 팀 토론 구역 에서 이에 대한 해답 은 api 가 논평 전문 을 제공 하지 않 는 다 는 것 이다.비극 은 다른 방법 을 강구 해 야 할 것 같다.다행히 api 팀 의 토론 게시 물 에서 깨 우 침 을 얻 었 고 본 고 에서 작성 해 야 할 방법 이기 도 합 니 다. 평론 의 html 홈 페이지 에 전문 이 포함 되 어 있 을 것 입 니 다. 그 를 잡 아 보 세 요.
1. 댓 글 의 홈 페이지 주소
'Programming Collective Intelligence' 라 는 책 을 예 로 들 면 api 호출 을 사용 합 니 다.(http://api.douban.com/book/subject/isbn/9780596529321/reviews?start- index = 1 & max - results = 5, 이 주 소 는 브 라 우 저 에서 직접 열 수 있 습 니 다. chrome 은 xml 소스 내용 을 직접 표시 합 니 다. ie 는 RSS 스타일 로 표 시 될 것 같 습 니 다.. 이 책의 앞의 5 가지 평론 정 보 를 되 돌려 줍 니 다. 우 리 는 첫 번 째 조 를 선택 하고 xml 데 이 터 는 다음 과 같 습 니 다.
<entry>
<id>http://api.douban.com/review/1480000id>
<title> title>
<author>
<link href="http://api.douban.com/people/1292376" rel="self"/>
<link href="http://www.douban.com/people/wdgu/" rel="alternate"/>
<link href="http://img3.douban.com/icon/u1292376-6.jpg" rel="icon"/>
<name>clickstonename>
<uri>http://api.douban.com/people/1292376uri>
author>
<published>2008-08-25T21:16:25+08:00published>
<updated>2010-11-16T10:09:16+08:00updated>
<link href="http://api.douban.com/review/1480000" rel="self"/>
<link href="http://www.douban.com/review/1480000/" rel="alternate"/>
<link href="http://api.douban.com/book/subject/2209702" rel="http://www.douban.com/2007#subject"/>
<summary>
, “ ”。 , paper , 。 Toby...
summary>
<db:comments value="13"/>
<db:useless value="1"/>
<db:votes value="41"/>
<gd:rating max="5" min="1" value="5"/>
entry>

 
그 중의 주 소 를 분석 하 다.http://www.douban.com/review/1480000/이 댓 글 의 홈 페이지 주소 입 니 다. XML 의 해석 은 여기 서 전개 되 지 않 습 니 다. 나중에 시간 을 내 서 콩잎 api 가 돌아 오 는 XML 의 해석 에 대해 토론 해 보 세 요.
콩잎 네티즌 클릭 스톤 이 쓴 멋 진 댓 글 에 감 사 드 립 니 다.
 
2. 웹 페이지 html 획득 및 분석
브 라 우 저 는 댓 글 주 소 를 열 고 웹 페이지 의 원본 파일 을 봅 니 다. (chrome 의 "심사 요소" 를 사용 하 는 것 이 더 편리 합 니 다. 댓 글 내용 은 다음 과 같 습 니 다.
<span property="v:description">

   , “ ”。
<br/>   , paper , 。
<br/>  Toby Segaran 《Programming Collective Intelligence》, 。......( -- )span>

이 를 통 해 알 수 있 듯 이 댓 글 전문 에 html 요소 가 많이 나 왔 습 니 다. 있 습 니 다. 4. 567915. 필 자 는 html 에 익숙 하지 않 습 니 다. 이 요 소 를 제거 하지 않 고 모 바 일 애플 리 케 이 션 에 표시 할 수 있 는 지 잘 모 르 겠 습 니 다. 본 고 는 html 요 소 를 제거 한 텍스트 를 얻 었 습 니 다. 계속 살 펴 보 겠 습 니 다.
3. 전문 을 얻다
이 단 계 는 html, 정규 표현 식 을 해석 하 는 등 여러 가지 방법 이 있 을 것 입 니 다. 정규 표현 식 방법 에 대해 토론 하 겠 습 니 다. 모두 가 저 보다 잘 알 고 있 을 것 입 니 다. 저 는 쓸데없는 말 을 하지 않 고 코드 를 직접 올 리 겠 습 니 다.
using System;
using System.Text.RegularExpressions;
using System.Net;


namespace ReTest
{
class Program
{
static void Main(string[] args)
{
System.Net.WebClient client = new System.Net.WebClient();
byte[] page = client.DownloadData("http://book.douban.com/review/1480000/");
string rawhtml = System.Text.Encoding.UTF8.GetString(page);

string re1 = "()"; // content header
string re2 = "(.*?)"; // Non-greedy match on filler
string re3 = "()
"; // tail

Regex r = new Regex(re1 + re2 + re3, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match m = r.Match(rawhtml);
if (m.Success)
{
String content = m.Groups[2].ToString();

//delete html elements
content = content.Replace("
  
", "\r
  
");//
content = content.Replace("
", "");
content = content.Replace("", "");

//
Regex rhref = new Regex("(]+>)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match mhref = rhref.Match(content);
if (mhref.Success)
{
String shref = mhref.Groups[1].ToString();
content = content.Replace(shref, "");
}
content = content.Replace("", "");


Console.Write(content.ToString() + "
");
}
}
}
}

 
총화
몇 개의 댓 글 페이지 를 테스트 했 는데 효과 가 아주 좋 습 니 다. 본 고 는 당신 에 게 도움 이 되 기 를 바 랍 니 다. 책 을 얻 은 인터넷 쇼핑 몰 가격 과 링크 도 반드시 이 방법 으로 해결 할 수 있 을 것 입 니 다. 아직 시도 하지 못 했 습 니 다. 관심 있 는 친구 들 은 연 구 를 많이 하 세 요. 아래 의 글 은 매우 훌륭 합 니 다. 여러분 은 참고 하 실 수 있 습 니 다: C \ # 해석 HTML.
오, one more thing, 정규 표현 식 생 성기 사이트 txt2re 에 감 사 드 립 니 다. 이상 C \ # 코드 는 이 사이트 에서 생 성 된 코드 를 바탕 으로 수정 되 었 습 니 다.
 
 
 
다음으로 전송:https://www.cnblogs.com/gzb1985/archive/2012/02/26/2368722.html

좋은 웹페이지 즐겨찾기