api_key에서 Wget 이미지 문제

api_key에서 Wget 이미지 문제

적절한 경로와 이미지 이름이 포함된 새 항목의 XML 피드를 보내는 공급업체가 있습니다. 이미지의 URL 경로를 제거하는 스크립트를 만들었지만 wget을 사용하여 해당 경로를 얻으려고 하면 프로토콜 오류가 발생합니다. 다른 유사한 도구를 사용 하면 wget -i list.txt문제가 없습니다. 이 문제의 원인은 무엇입니까? 가장 좋은 조언은 무엇입니까?

답변1

내 생각엔 이게 효과가 있을 것 같아

grep -oP "http:\//[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*.jpg" inputfile  | xargs -n1 wget

또는 목록이 있으면 사용할 수 있습니다.

cat list.txt | xargs -n1 wget 

답변2

입력 샘플과 최소한 스크립트의 핵심을 보지 않고도 URL이 악의적인 Space Snowman에 의해 손상되었다고 추측할 수 있습니다. 그들은 이러한 유형의 무책임한 행동으로 악명 높습니다. 유일한 희망은 Area 51 기술 지원에 전화하는 것입니다.

또는 여기에서 예제와 스크립트를 제공할 수 있습니다. 이것은 미친 생각이지만 도움이 될 수 있습니다. 필요한 경우 익명화하거나 난독화하되 XML 파일의 구조를 망쳐 놓지 마십시오.

나는 당신이 간단한 정규식을 사용하고 있다고 생각하고 일반적으로 정규식을 사용하여 XML을 "파싱"하는 것은 좋은 생각이 아니라는 점을 지적합니다. 이는 깨지기 쉽고 유효하지만 예상치 못한 입력으로 인해 쉽게 혼동될 수 있습니다. xml 구문 분석 라이브러리나 함수 또는 유사한 도구XML2XML 파일에서 URL을 추출합니다.

또한 Deer Hunter가 위에서 암시한 것처럼 URL에 셸에 특별한 의미가 있는 공백이나 구두점 문자(예: , , 및 기타 여러 문자)가 포함된 경우 &URL ?*사용하기 전에 URL을 인용하거나 이스케이프해야 합니다. wget URL 명령줄. 매우 간단한 예로 $URL 변수 주위에 큰따옴표를 적어 wget "$URL"두십시오 .wget $URL

답변3

여러 번 검토한 결과 네트워크에 문제가 있는 것으로 나타났습니다. wget 스크립트는 다른 사이트에서 다운로드한 링크에 대해 작동하며 jdownloader와 같은 창 기반 도구를 사용합니다. 어떤 이유로 Linux 기반 당사자는 공급업체의 NT 웹 서버에 액세스할 수 없습니다. winbind를 설치했지만 네트워크가 제대로 확인됩니다.

관련 정보