2008-10-09 7 views
0

저는 자바 개발자이며 주어진 작업 자동화에 대한 질문이 있습니다. 하루에 3 번씩 작업해야하는이 웹 사이트에 로그인하고 몇 가지 양식 요소를 선택한 다음 제출을 클릭하면 보고서를 인쇄 할 수 있습니다. 이 작업을 자동화하는 일종의 스크립트를 어떻게 작성할 수 있는지 궁금합니다. 어디에서 시작해야합니까? 어떤 언어로해야합니까? 나는 PHP가 아마도 greasemonkey 스크립트를 수행 할 수 있을지도 모른다고 생각하고 있었습니까?웹 페이지에서 보고서 가져 오기 자동화

고마워요.

답변

2

PHP에서 cURL을 확인하십시오. 그것은 당신이 (마우스를 움직이는 것 이외의) 코드로 웹 브라우저의 모든 일반적인 기능을 수행하게합니다. 그리고 예, 화면 긁기 작업을 수행해야합니다.

+0

안녕하세요, 저는 같은 문제가 있었으며 cURL을 시도했지만 쿠키를 처리 할 수 ​​없었습니다. 코드 처리 방법에 대한 코드 스 니펫을 게시 할 수 있습니까? (쿠키에 대한 지식이 약합니다.) –

0

"웹 스크래핑"또는 "스크린 스크래핑"이라고하며이를 수행 할 라이브러리가 많이 있습니다. 나는 자바 특정 도구에 대해 말할 수 없었다. 나는 닷넷 녀석이다. 닷넷 방식은 System.Net.WebClient 또는 System.Net.HttpWebRequest/System.Net.HttpWebResponse 일 것이다. 하지만 뭔가있을 거라 확신합니다.

그 동안 첫 번째 단계는 양식 값을 입력하고 페이지의 소스를 보는 페이지로 이동합니다. 작성하려는 특정 < 양식> 요소를 찾고 게시물의 위치를 ​​확인하십시오 (조치). 그런 다음 < 입력> < select>, < textarea> 요소를 찾으십시오. 여기에는 양식의 숨겨진 입력 내용도 포함되어 있으며 필요한 값을 알아낼 수 있습니다. 그러면 도서관에서 보낼 수 있도록 도서관을 찾으면 요청을하는 법을 알려줍니다.

페이지에 들어가려면 먼저 사이트에 로그인해야하는 경우 상황이 더 복잡 할 수 있습니다. 세션 값을 검색하고 구문 분석하거나 서버에 특정 쿠키를 보낼 수 있어야합니다.

0

나는 당신의 양식에 기록 된 어떤 언어로 알고 있지만, 당신이 할 수있는 것은하지 않습니다

  • 가에 cron 항목을 사용라는 보고서를 생성하는 스크립트에 양식을 다시
  • 이 작업을 매일 수행하도록 예약하고 출력을 메일로 보내십시오.

기본적으로 cron은 Unix 시스템에서 예약 된 작업입니다. Windows 기반 서버는 작업 스케줄러를 사용하여 거의 동일한 결과를 얻을 수 있습니다.

위의 내용은 현재 보고서를 생성하는 스크립트에 대한 액세스 권한이 있으며 해당 파일을 수정하거나 새 파일로 복사하여 출력을 전자 메일로 전송할 수 있다고 가정합니다. 그렇지 않으면 화면 긁기를 조사해야 할 수도 있습니다. 자바 개발자로서 시작하기에 편리한 this list of Java screen scraping utilities을 발견 할 수 있습니다.

1

아직 언급하지 않은 잠재적 인 고집은 "이 웹 사이트에 로그인하십시오"라는 구절이라고 생각합니다. 로그인 방법에 따라 백도어를 통해 들어가야 할 수도 있습니다. 보고서에 액세스하십시오.

제 3 자 사이트에서 보고서를 다운로드해야 할 때 과거에 이런 종류의 문제가있었습니다. 문제는 내가 스크립트 매개 변수에 액세스하기 위해 인증을 할 수 없었기 때문에 사이트에 로그인해야하는 하드 코딩 된 스크립트보다 친숙한 방식 이었기 때문입니다. 그러나 귀하의 사이트가 조직 내부에 있다고 가정하므로 데이터에 액세스하기 위해 보안 요구 사항을 우회/재 작업 할 수 있습니다. 이 경우 위에 설명 된 화면 스크래핑 방법 중 하나를 사용할 수 있어야합니다.

그렇지 않은 경우 실제 로그인 절차를 스크립트 또는 응용 프로그램에 통합해야 설정할 수있는 쿠키를 다운로드하여 캡처하고이를 데이터 요청에 통합해야 할 수 있습니다.