2017-12-16 21 views
0

파일에 저장된 여러 개의 URL을 다운로드하고 다른 폴더에 저장하려면 wget을 사용하라는 메시지가 나타납니다.배쉬 _ wget _html2txt

wget -E -i url.txt -P ~/Desktop/ProjectM2/data/crawl

하지만 PROB 번호 파일을 다음과 같이 이름이해야 할 일 : 그래서이 명령을 사용

1.html 
2.html 
3.html 
.. 

을 나는 매니 물건을 시도하고 난 여전히 수 없습니다 해.

나는 숫자

1.txt 2.txt 3.txt .. 

또한 .txt 및 유지에 .html에서 html2txt -utf8를 사용하여 하나의 명령으로 모든 파일을 변경하는 방법을 모르는 2
PROB 번호는 당신에게

+0

'나는 매니큐어를 보았 니?' 정확히 무엇을 시도 했습니까? url.txt에 어떤 URL이 있는지 예제를 보여줄 수 있습니까? – marcell

+0

나는을 위해 –

+0

URL을 사용하려고했습니다. http://www.lefigaro.fr/culture/2010/12/31/03004-201ARTFIG00461-le-bonheurest-dans-la-cuisine.php https : //www.universalis.fr/encyclopedie/egypte-antique-histoire-l-egypte-pharaonique/ –

답변

0

감사합니다 귀하의 경우에 url.txt에있는 URL의 순서가 중요 할 경우 즉, 1.html에 첫 번째 URL의 데이터가 포함되어야한다면 2.html은 두 번째 url과 일치해야하므로 순차적으로 urls를 처리 할 수 ​​있습니다.

다음 스크립트는 각 URL에 대해 원하는 작업을 수행합니다 :

#!/bin/bash 

infile="$1" 

dest_dir="~/Desktop/ProjectM2/data/crawl" 

# create html and txt dir inside dest_dir 
mkdir -p "$dest_dir"/{html,txt} 

c=1 
while IFS='' read -r url || [[ -n "$url" ]]; do 

    echo "Fetch $url into $c.html" 
    wget -q -O "$dest_dir"/html/$c.html "$url" 

    echo "Convert $c.html to $c.txt" 
    html2text -o "$dest_dir"/txt/$c.txt "$dest_dir"/html/$c.html 

    c=$((c + 1)) 

done < "$infile" 

스크립트는이 경우 url.txt에, 입력 파일를 차지한다. 결과 파일을 더 잘 구성하기 위해 대상 디렉토리 ~/Desktop/ProjectM2/data/crawl 아래에 두 개의 디렉토리 (html, txt)를 작성합니다. while 루프 (Read file line by line)를 사용하여 줄 단위로 파일 url.txt에서 URL을 읽습니다. wget을 사용하면 -O 옵션을 사용하여 원하는 출력 파일 이름을 지정할 수 있으므로 원하는 경우 파일 이름을 지정할 수 있습니다. 일련 번호는 원하는 경우 지정할 수 있습니다. -q 옵션은 wget 메시지를 명령 행에서 제거하는 데 사용됩니다. html2text에서 -o을 사용하여 출력 파일을 지정할 수 있습니다.

+0

어디서 url.txt 폴더의 경로를 넣었습니까? –

+0

위 코드를 파일에 저장해야합니다 (예 : fetch.sh). 그런 다음 실행 가능하게 만듭니다. 그런 다음 스크립트를 실행할 수 있습니다. ./fetch.sh path/to/url.txt. 코드에서 infile = "$ 1"표현은 마술을합니다. 즉, 호출의 첫 번째 인수를 가져 와서 infile 변수로 사용하십시오. – marcell

+0

스크립트를 사용해 보았지만 오류가 많아서 시도했습니다. #!/ bin/bash c = 1 읽는 동안; 할 wget을 -q -i ~/국/ProjetM2_DreemAT/데이터/입/url.txt -O ~/국/ProjetM2_DreemAT/데이터/크롤/$ c.html html2text -o ~/국/ProjetM2_DreemAT/데이터 /crawl/$c.html ~/Bureau/ProjetM2_DreemAT/data/txt/$ c.txt c = $ ((c + 1)); done <~/Bureau/ProjetM2_DreemAT/data/input/url.txt 일부 파일이 생성 되었기 때문에 1.html 2.html하지만 아무것도 포함되지 않았습니다. 1.txt 파일이 만들어지지 않았습니다 –