Google 이미지 검색 결과 페이지를 가져오기 위해 터미널에서 컬을 사용해 보았지만 Firefox에서 "페이지 소스 보기"를 사용하여 볼 수 있는 실제 HTML 소스를 제공하지 못했습니다. 나는 "curl [url]"과 "curl -L [url]"을 시도했습니다. 둘 다 나에게 "귀하의 클라이언트는 이 서버에서 URL을 가져올 수 있는 권한이 없습니다"가 포함된 짧은 HTML 소스 코드를 제공했습니다. 쉘 스크립트를 통해 Firefox에서 사용 가능한 HTML 소스 코드를 얻는 방법은 무엇입니까?
터미널에서 얻은 짧은 HTML의 일부에 다음과 같은 내용이 나와 있습니다.
다음 위치에 게시된 Google 서비스 약관을 참조하세요. http://www.google.com/terms_of_service.html
이 응답을 잘못 받았다고 생각하시면 문제를 신고해 주세요. 하지만 서비스 약관(http://www.google.com/terms_of_service.html). 귀하의 이메일로 우리에게 보내주십시오모두코드는 아래와 같습니다.
답변1
오류 메시지에는 깨진 링크가 포함되어 있지만Google의 현재 서비스 약관설명하다:
당사 서비스를 남용하지 마십시오. 예를 들어 당사 서비스를 방해하거나 서비스에 액세스하기 위한 방법을 사용하려고 시도하지 마십시오.우리가 제공하는 인터페이스와 지침 외에도.
(강조는 내 것)
그들은 어떤 이유로 귀하의 요청을 거부합니다. 그들은 귀하의 IP 주소에서 의심스러운 활동을 감지했을 수도 있지만 귀하가 curl
일반 브라우저(광고가 표시되는 브라우저)가 아닌 다른 브라우저를 사용하고 있다는 사실을 발견했을 가능성이 높습니다 .
curl
일반 사용자 에이전트(예 :http://www.browser-info.net/useragents) 옵션을 선택 -A
했지만 이는 여전히 서비스 약관을 위반하는 것입니다.
답변2
나는 이것이 쿠키 문제(또는 쿠키 부족)일 가능성이 가장 높다고 생각합니다. 컬의 -c [file]
쿠키 항아리 옵션을 사용하여 쿠키를 파일에 저장할 수도 있습니다 . 이미지 검색을 제출하고 모든 쿠키를 에 저장하려면 "google.com"을 나타내는 컬 요청을 작성해야 할 수도 있습니다. file
그런 다음 두 번째 쿼리를 사용하여 실제 검색에 제공된 웹 URL을 가져오고 다음 옵션을 사용하여 저장된 쿠키를 로드해야 할 수도 있습니다. -b [file]
. 아마도 세션 ID 쿠키만 필요할 것입니다.
아래 스크린샷에서 Google이 여러 쿠키 변수를 할당하는 것을 볼 수 있습니다.