2014-08-31 2 views
0

그래서 한 줄에 하나씩 txt 파일에 약 1000 개의 URL 목록이 있습니다. 모든 페이지의 내용을 파일에 저장하고 싶습니다. 어떻게 자동화 할 수 있습니까? "Linux CentOS를 사용하여 여러 URL을 한 번에 저장

.
+0

'curl'또는 'wget'에 대해 알고 계십니까? 그들은 이것을한다. 그런 다음 파일 줄을 반복하면서이 사이트에서 여러 가지 답변을 확인할 수 있습니다. 시도해보고 시도를 보여주고 어딘가에 갇혀 있는지 표시하십시오. – fedorqui

+0

Im 리눅스에 상당히 가깝습니다. 더 설명해 주시겠습니까? 필요한 코드를 알려주시겠습니까? 고맙습니다. 감사합니다. – Natha

답변

1

당신은이 URL 목록을 다운로드 할 수 있도록하기 위해 -i 옵션 wget을 사용하여 URL을 가정 할 수는 urls.txt라는 파일에 저장됩니다

wget -i urls.txt 

문제는 여기에 파일 이름이 동일 할 수 있음을 수 있습니다 여러 웹 사이트 (예 : index.html)의 경우 wget은 파일 이름을보고 파일을 원본 URL에 연결할 수 없도록하는 숫자입니다. 그것
솔루션은 다음과 같이 루프를 사용하는 것입니다 :

while read -r line 
do 
    wget "$line" -O <...> 
done < urls.txt 

당신은 -O 옵션을 사용자 정의 파일 이름을 지정할 수 있습니다.

또는 처리중인 URL에서 파일 이름을 "빌드"할 수 있습니다.

while read -r line 
do 
    fname=$(echo "$line" | sed -e 's~http[s]*://~~g' -e 's~[^A-Za-z0-9]~-~g') 
    fname=${fname}.html 
    wget "$line" -O "$fname" 
done < urls.txt 
관련 문제