2012-01-26 1 views
4

나는 방금 학교에서 file_get_contents()으로 장난 꾸러기를했고 주목했다. 학교에 블랙리스트에 올라있는 웹 사이트를 열어 볼 수있다.file_get_contents() 또는 cURL을 사용하여 프록시를 만들 수 있습니까?

만 몇 가지 문제 :

없음 이미지로드

웹 사이트에서 링크를 클릭하면 바로 원래의 차단 페이지로 날 다시 걸립니다.

나는 내가 연결 문제를 해결하는 방법을 알고 있다고 생각하지만, 정말 그에, 또 다른 file_gets_contents() 기능을, 어떤 링크를 대체 할 file_get_contents에서 콘텐츠에 str_replace을 할 수있는 .. 을 통해 그것을 생각하지 않은 링크 ... 맞습니까?

내가 대신 cURL을 사용하면 작업이 더 쉬워 집니까?

내가 할 수있는 일이 가능한지, 아니면 단지 내 낭비 일뿐입니다 시간입니까?

나는 이것이 이런 식으로 진행하는 좋은 방법이 아니라는 것을 알고 있지만, 그것은 단지 생각 일 뿐이라는 것이 나를 호기심으로 만들었습니다.

+1

+1을 테스트하고 관찰하기 위해 :-) 흥미가 있다는 것을 보여줍니다. – Flavius

답변

2

이것은 간단한 작업이 아닙니다. 가능하지만 반환 된 문서를 구문 분석하고 외부 콘텐트를 참조하는 모든 내용을 바꿔서 프록시를 통해 중계되도록해야합니다. 이는 어려운 부분입니다.

당신이 처리 할 수 ​​있어야합니다 명심하십시오 (시작, 이것은 전체 목록이 아닙니다) 또는 외부 콘텐츠를 가져 오지 않을 수있다

  • 상대 및 절대 경로는
  • 외부 내용을 참조 할 수있는 앵커, 양식, 이미지 및 기타 여러 HTML 요소가 있으며 참조하는 내용을 명시 적으로 지정하거나 명시하지 않을 수 있습니다.
  • 외부 콘텐츠를 참조하는 CSS 및 JS 코드로, DOM을 수정하여 링크로 작동하는 click 이벤트가있는 요소를 만들도록 DOM을 수정하는 JS를 포함하여 하나의 도전 과제입니다.

이것은 상당히 거대한 작업입니다. 개인적으로 나는 귀찮게하지 말 것을 제안 할 것입니다. 아마도 귀중한 시간은입니다.

;-)

0

귀하의 "문제"에서 유래 : 멋진 사람들이 이미 당신을 위해 대부분의 작업을했을 특히 이후

HTTP가 stateless protocol이고 css, js, images 등의 다양한 리소스가 자체 URL을 가지고 있기 때문에 요청이 필요합니다. 각각을위한 st. 자신이 직접하고 싶거나 php-proxy 같은 것을 사용하지 않으려면 "매우 사소한 일"입니다. html을 정리하고 tidy에서 xml (xhtml)으로 정규화 한 다음 DOMDocumentXPath으로 처리해야합니다.

당신은 많은 것을 배울 수 있습니다 - 너무 복잡하지는 않지만 흥미로운 "기술"이 필요합니다.

무엇이 크롤러 또는 스크린 스크레이퍼으로 끝날지 결정합니다.