2012-09-03 4 views
0

웹 페이지에서 모든 이미지를 다운로드하고 이미지 이름 앞에 웹 페이지의 URL을 붙이십시오 (모든 기호는 밑줄로 대체).URL을 기반으로 이미지를 다운로드하고 이미지 이름을 저장하는 방법은 무엇입니까?

www_amazon_com_gp_product_B0029KH944_41RaFZ6S-0L._SL500_AA300_.jpg 내가 WinHTTrack과 wget을 설치 한

: 나는 http://www.amazon.com/gp/product/B0029KH944/에서 모든 이미지를 다운로드한다면

는 예를 들어, 주요 제품의 이미지는이 파일 이름을 사용하여 저장됩니다 그리고 그들이 원하는 것을 할 수있게 해줄 가치가있는 것보다 많은 시간을 보냈지 만, 나는 성공하지 못했습니다. 그래서 Stack Overflow가 마지막 도랑 노력입니다. 사이트 구조에 따라 파일을 저장하고 부모 디렉토리를 기반으로 파일의 이름을 바꾸는 스크립트를 작성하는 빌드 옵션을 설정하면 WinHTTrack이 닫히지 만 기본 이미지는 다른 도메인에서 호스팅되는 것이 문제입니다.

답변

1

글쎄, 내 새로운 Webscraper에 다운로드 옵션을 추가했다. 그와

당신은 이런 식으로 작업을 수행 할 수 있습니다

xidel "http://rads.stackoverflow.com/amzn/click/B0029KH944" -e 'site:=translate(filter($_url, "http://(.*)", 1), "/.", "__")' -f //img -e 'image:=filter($_url, ".*/(.*)", 1)' --download '$site;$image;' 

먼저 -e는 URL을 읽고 /을 제거합니다. -f는 모든 img를 선택하고 -e second는 파일 이름을 읽고 -download는 파일을 읽습니다.

모든 이미지를 html 파일로 구문 분석하려고하면 단점이 있지만 조금 내려 ...

+0

안녕하세요 BeniBela, 방금 xidel을 다운로드하고 제공 한 명령을 실행했습니다. 그러나 다음과 같은 오류가 발생했습니다 : "알 수없는 오류 옵션 :. (인수를 읽을 때.)" – 10basetom

+1

Windows 또는 Linux를 사용하고 있습니까? Windows에서는 외부 수준에서 '-single quotes를 지원하지 않으므로'with "-quotes를 교체해야합니다. 그리고 응답을 게시 한 후 기본 변수 이름을 변경했습니다. 이제 두 개의 $ _url 변수가 있어야합니다. 더 단순한 $ url로 대체하십시오. – BeniBela

+0

모든 문서를 쏟아 부은 후 많은 시행 착오를 거쳐 마침내 내가 훌륭하고 매우 유연한 스크레이퍼 인 BeniBela를 이해할 수있었습니다 :-) 다음은 정확하게 수행하는 최종 명령입니다. 내가 원하는 질문 : 'xidel http://www.amazon.com/dp/B0029KH944/ -e "site : = fn : (filter ($ url,'http : // (. +) ', 1), "- W", "_") "-f"// img [@ id = 'prodImage'] "-e"image : = 필터 ($ url, '. +/(. +)', 1) "--download"$ site; $ image; "The – 10basetom

관련 문제