2014-02-16 11 views
2

웹 사이트를 html 형식으로 다운로드 한 다음 코드를 반복하고 특정하지만 항상 변화하는 값을 찾으려는 webapp를 개발 중입니다. 우리의 경우 제품의 가격이 될 것입니다).검색 특정 값을 찾아야하는 웹 응용 프로그램의 알고리즘

이 경우 사용자에게 (설치 및 설정시) 시스템에 몇 줄의 HTML (가격이 있음)을 제공하고 그 다음부터 필요할 때마다 시스템에 제공하도록 요청했습니다. 우리가 그 라인을 찾고 가격을 찾으려고 노력할 가격을 가져 오십시오.

이제는 이것이 끔찍하고 느린 방법이라고 생각합니다. 규칙이 없기 때문에 HTML은 한 웹 사이트와 완전히 다를 수 있습니다 (심지어 동일한 웹 사이트가 변경 될 수도 있음). 더 좋은 방법.

내가 처음 생각한 개선점은 처음으로 반복하여 코드를 찾는 라인을 기록하는 것이 었습니다. 일단 발견되면, 그 다음에 예상되는 위치보다 몇 줄에서 시작하여 검색을 시작합니다. 이 문제를 어떻게 개선 할 수 있을지에 대한 생각이 있으십니까?

나는이 질문을 https://cstheory.stackexchange.com/에 올렸지 만 주제가 아니며 여기에 게시해야한다고 덧붙였다.

나는 위의 코드를 가지고 있으며 필요한 경우 게시 할 수 있습니다.이 작업을 더 빠르고 더 빨리 수행 할 수 있어야한다고 생각합니다.

+0

나는 vale이 변화하고 있음을 알고 있지만 예측할 수있는 올바른 값을 가리키는 단서가 있습니까? 해결할 수있는 jQuery 스타일 선택기 (또는 가장 좁은 범위를 좁힐 수 있습니까?) –

+0

@JasonSperske 불행히도 보장되지 않습니다. 이것이 주요 문제입니다. 유일한 상수는 값이 가격이라는 것입니다. 그러나 그로 말미암아 html 마크 업은 극적으로 달라질 수 있습니다 (통화 기호 및 특정 국가의 현재 형식은 말할 것도 없습니다) – hjavaher

+0

구문 분석하려는 마크 업 예제를 추가 할 수 있습니까? –

답변

1

이것은 실제로 내가 BeautifulSoup과 Python을 사용하여 최근 프로젝트에 시도한 것입니다. 저에게 도움이되는 해결책은 찾고있는 값이 포함 된 요소를 대상으로하는 CSS 선택기 (jQuery 선택기에 매핑 할 수 있음)를 사용하는 것이 었습니다. 제 경우에는 제가 찾던 내용이 담긴 요소만으로 전체 문서를 좁힐 수있었습니다. 그러나 만약 당신이 정확히 어떤 것을 얻을 수 없다면, 이것을 시험 할 수있는 여분의 젖산과 결합 할 수 있습니다. 가격 (정규 표현식을 통해) 또는 옆에있는 것을 테스트하십시오.

+0

예, 솔직히 내가 그것을 놓친 것을 모르겠습니다. 이것이 가장 간단한 방법입니다. 각 웹 사이트가 다르긴하지만 동일한 웹 사이트가 구조를 변경하는 경우는 거의 없으며 CSS 선택기를 사용하여 서버 대신 서버에서 브라우저를 작동하게 만듭니다. ! – hjavaher