2017-09-13 7 views
1

"제목 값이 없습니다"오류 :REBOL 구문 분석 HTML : 나는 HTML 페이지를 구문 분석하려고 해요

url: https://dzone.com/articles/2-entity-framework-alternatives-or-give-me-data 
html: read url 

parse html [ 
    to {<h1 class="article-title" itemprop="headline">} 
    thru {<h1 class="article-title" itemprop="headli 
    ne">}copy title to {</h1>} 
] 

probe title 

나는 오류 때문에 작동하지 않는 이유를 볼 수 없습니다 "제목이 없음 value "

+0

복사/붙여 넣기 오류가 있다는 가정하에 귀하의 질문을 편집했습니다. 그러나 문자열에서 줄 바꿈을하여 "headli"와 "ne">'로 나누면 여러 줄로 된 문자열이며 내용의 일부로 줄 바꿈을 시도 할 것이므로 다시 넣으겠습니다. 케이스가 문제의 실제 원인입니다. – HostileFork

+0

@HostileFork 죄송합니다. 기차에서 코딩 중입니다. :) – user310291

+0

** 무엇이든간에 ** ** 무엇이든간에 ** ** 예를 들어 같은 효과를 나타냅니다. THRU에는 TO의 탐색 논리뿐만 아니라 데이터 소비도 포함됩니다. – HostileFork

답변

3

무료 버전은 https를 사용하지 않으므로 Rebol/view를 사용한다고 가정합니다.

무언가가 작동하는지보고 싶다면 구문 분석의 반환 값을 살펴 봐야합니다. 그러면 구문 분석 규칙에 문제가 있음을 의미하는 false이 표시됩니다. 어쨌든, 이것은 나를 위해 작동 <> 모두 문자열 구분 기호이기 때문에 태그 주변의 따옴표가 필요하지 않습니다.

>> parse html [ 
    thru <h1 class="article-title" itemprop="headline"> 
    thru <h1 class="article-title" itemprop="headline"> 
    copy title to </h1> to end 
] 
== true 

>> trim/head/tail title 
== "2 Entity Framework Alternatives (or Give Me Data!)" 
+0

rebol3은 https를 지원합니까? Win 32 v 2.101.0.3.1에서 나는 다음을 얻습니다 : ''>> https://www.dzone.com을 읽으십시오 ** 액세스 오류 : 누락 된 포트 체계 : https – Edoc

1

하지 두 번째에서 <h1 ...>의 선두로부터의 시작 부분에 thru 시작은, 당신이 예상 한 하듯이되도록 첫째 to이 전에 일치하는 문자열을 을 중지하기 때문에 대부분의 아마 작동하지 않습니다. 두 번째 검색을 시도하기 전에 첫 번째 발생을 건너 뛸 필요가 있습니다.

parse html [ 
    2 thru <h1 class="article-title" itemprop="headline"> 
    copy title to </h1> to end 
] 

공지 사항 규칙이 도달에 성공하면 parse 반환 true를 만들 것입니다 최종 to end 규칙 : 당신은 그것을 중복되지 않도록하기 위해 다른 답변에서와 같이 두 thru 규칙을 사용하거나 두 번 규칙을 반복 것을 달성 할 수 끝. to end 규칙은 자리 표시 자 규칙으로, </h1>을 따르는 것에 신경 쓰지 않지만 입력 끝 부분에 도달하려고합니다.

편집 : 코드를 테스트 당신은 여기 변경에서 좋은 작품을 제출했다. 귀하의 질문을 편집하면 실제로 오류의 원인이 수정되었습니다. original code으로 문제를 재현 할 수 있습니다.