미러 스택 교환에는 외부 미러가 포함됩니다.

미러 스택 교환에는 외부 미러가 포함됩니다.

이 스크립트는 영향을 받는 모든 문제를 포함하여 오프라인으로 읽을 수 있는 모든 활성 페이지를 보관하는 미러 폴더를 생성합니다.

#!/bin/bash
USERNAME=rubo77
MAXDEPTH=2 # increase this if you want to backup more of your history
USERID=1047481

mkdir -p mirror_$USERNAME
cd mirror_$USERNAME/
TEMP=/tmp/tmp.stackexchange_export
wget http://stackexchange.com/users/$USERID/$USERNAME?tab=accounts -q -O $TEMP
for SITE in $(grep account-icon $TEMP -A 4 | grep users | sed -r 's/.*(http[^"]*)".*/\1/g'); do
    echo '### ' $SITE ' ###'
    for c in $(seq 1 2); do
        DIR=$(echo $SITE|tr / _|sed s/^http:__//)$c
        mkdir -p $DIR
        cd $DIR
        httrack "$SITE$USERNAME/?tab=activity&sort=all&page=$c" \
                -* "+*/questions/*" +*sstatic.net* +*googleapis* \
                +*gravatar* +*imgur.com* +mime:text/css -r2 -N1
        cd ../
    done
done

그런데 외부 이미지(예: 아바타)와 imgur의 포함된 이미지를 어떻게 포함하나요?

답변1

첫째, 조심하세요구아샤 에티켓, 그렇지 않으면 당신은차단/제한.

프로그래밍을 좋아한다면 다음을 고려해 볼 수도 있습니다.스택 교환 API대신, 예를 들어 다음 중 하나를 확장하십시오.스택 애플리케이션좋다스택 프린터. 이것 좀 봐그리고관련 질문데이터를 가져오는 방법과 이를 수행하는 애플리케이션에 대해 자세히 알아보세요.

하지만 귀하의 질문에 따르면 오프라인 Atom/RSS 리더를 사용하여 구독하는 것이 가장 좋은 서비스를 받을 수 있을 것 같습니다.계정 변경사항

편집 1: 오프라인일 때만 동일한 사이트에 액세스하려면 캐싱 HTTP 프록시를 사용하는 것이 가장 좋습니다. 나는 좋은 경험을 했다wwwoffle예를 들어, 과거에는(수동으로 지시하지 않는 한 절대 만료되지 않으며 클릭한 링크도 오프라인에서 사용할 수 없었기 때문에 다음에 온라인에 접속했을 때 해당 링크를 가져옵니다) 거의 모든 캐싱 프록시는 괜찮습니다. 올바르게 구성한 경우(특히 디스크 제한/만료 시간) 전체 인터넷을 캐시하지 않으려면(이 경우 일반적으로 수행하지 않음) 특정 URL만 캐시하도록 프록시를 구성하거나 웹 브라우저 자체에서 수행해야 합니다(예:여우 대리인또는 간단한 사용.pac 파일. 이는 훌륭하고 투명하게 작동하며 프로그래밍이 필요하지 않으며 SE 사이트의 로드도 줄여줍니다(화면 스크래핑 예제처럼 짧은 시간에 수많은 요청으로 사이트를 망치는 대신).

여전히 스크린 스크래핑 사용을 고집한다면 작동할 것입니다. 하지만 필요한 것만 가져오고 그 이상은 가져오지 않도록 주의해야 하며(사이트가 변경되면 스크립트를 계속 업데이트해야 함), URL을 검색한 후에는 추가 차단을 방지하고 기존 캐시된 콘텐츠가 변경되지 않은 경우 재사용하기 위해 중간에 지연( wget --mirror등) 그러나 더 미세한 뉘앙스를 얻으려면 프로그래밍이 필요할 가능성이 높습니다(sed/awk가 있는 쉘에서도).

--user-agent="RuboScraper-1.1"이 경우 스크립트가 차단될 때 악의적이지 않은 나머지 동작을 차단하지 않도록 항상 사용자 지정 사용자 에이전트(예: )를 설정하세요.얻다세상에. 작동하게 되면 착용하세요.스택 애플리케이션그리고 여기에 연결하면 다른 사용자가 바퀴를 다시 만들거나 벽에 부딪히는 모든 작업을 수행할 필요가 없습니다.

관련 정보