#가 포함 된 URL로 Wget


11

과 같은 URL 을 다운로드하려고합니다 http://www.somesite.com/restaurants.html#photo=22x00085.

작은 따옴표 사이에 넣었지만 올바른 페이지가 아닌 http://www.somesite.com/restaurants.html 만 다운로드 합니다.

해결책이 있습니까?


지금 이것을 테스트 할 수는 없지만, 내가 기억하는 것에서 % 20은 공간에서 작동하므로 % 23은 아마도 #에서 작동 할 것입니다 (% 23은 #에 대한 퍼센트 인코딩입니다)
lupincho

3
동일한 HTML 파일이 아닙니까? #은 웹 브라우저에게 페이지의 특정 부분으로 이동하도록 지시 할 수 있습니다.
barlop

답변:


20

wget잘 작동합니다. URI 구문 하도록 지정 단편 더 - #foo부분 - 인 전적으로 클라이언트 측을 해석하고, 문서 자체를 검색 할 때 사용되지한다.

예를 들어 HTML 페이지 인 경우 브라우저가 이름이 지정된 섹션으로 아래로 스크롤되거나 경우에 따라 특정 사진을 표시하는 JavaScript 코드가 트리거 될 수 있습니다.

다시 말해, wgetURI에 관한 한

  • http://www.somesite.com/restaurants.html#photo=22x00085
  • http://www.somesite.com/restaurants.html

... 같은 페이지를 가리 킵니다 /restaurants.html . 나머지 작업은 브라우저에 달려 있습니다. restaurants.html#photo=22x00085브라우저에서 열면 정상적으로 작동합니다.


8

적절한 링크를 방문하지 않으면 어떤 링크인지 알 수 없지만 두 가지 옵션 만 있습니다.


이런 식으로 URL 조각을 악용하는 많은 사이트를 보았습니다. 목록 상단에는 Google 자체가 있습니다. ... 이것은 RFC를 왕창 위반,하지만 "작동"이후 많은 사람들이, 상관하지 있음
마이클 햄프 턴에게

1
@MichaelHampton : 위반 한 RFC를 정확히 지적 할 수 있습니까?
user1686 년

@grawity RFC 2396, part 2.4.3은 #이 URI의 일부가 아니라고 읽을 수 있습니다. 이것은 RFC 3986에서 완화 된 것으로 보이며, 아무것도 정의 할 수 없을 정도로 모호합니다.
Rich Homolka

1
@RichHomolka : "foo # bar"는 실제로 URI (데이터 검색에 사용됨)와 프래그먼트 (사용자 에이전트에 대한 해석)로 구성된 "URI-Reference"라고합니다. 조각이 실제로 HTTP 요청으로 전송 된 경우에만 위반됩니다.
user1686 년

0

이미지의 URL이 아닙니다. 스크립트 나 다른 코드를 사용하여 이미지를 가져 오는 페이지의 URL입니다. JavaScript를 끈 상태에서 페이지를로드하십시오. 이것이 wget이 가져 오는 것입니다.

이미지의 URL을 찾으려면 브라우저를 통해 페이지를 방문한 다음 사진을 마우스 오른쪽 버튼으로 클릭하십시오. URL을 포함하여 이미지에 대한 정보를 볼 수있는 옵션이 있어야합니다.

그래도 작동하지 않으면 이미지가 Flash 또는 다른 클라이언트 측 프로그램을 통해로드되고 있기 때문일 수 있습니다. Fiddler 또는 Wireshark를 사용하여로드되는 URL을 볼 수 있습니다.

이미지가있는 사이트의 실제 URL을 제공하면 이미지로드 방법을 결정할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.