すべてのctrl+alt+del webcomicsをダウンロードするためのPythonスクリプト? [閉まっている
-
19-09-2019 - |
質問
誰かが持っていますか? iveを試してみましたが、それは私に最新のコミックをダウンロードすることができるだけで、私はすべてのコミックをダウンロードするためにそれを変更する方法を見つけ出すのに十分なことをよく理解していません
解決
まあ、それはPythonではなく、この方法もそれほどエレガントではありませんが、機能します。
の簡単な検査の後 Ctrl+alt+delアーカイブサイト すべての漫画は /コミック / JPGファイルとして保存されていることがわかりました。
その仮定により、 *nixマシンのシェルで次のコマンドを実行すると、すべてのコミックがダウンロードされます。ファイル名は明らかにyyyymmddの形式の日付です。
$ for filename in $(seq 20020101 20090726); do wget http://www.ctrlaltdel-online.com/comics/"$filename".jpg; done
ああ、それはしばらく時間がかかるかもしれません:)。
他のヒント
まあ、いくつかのアプローチがあります。コミック画像自体のURLを見て、パターンに従っているかどうかを確認し、パターンに一致するURLを生成する小さなスクリプトを作成し、単にWGETなどを使用してダウンロードするだけです。必要なPythonを学ぶには、お勧めします Pythonチュートリアル. 。具体的には、文字列、文字列のフォーマット、文字列操作を組み合わせる方法を見ると、コンポーネントの文字列、数字などからURLを構築できます。この種のプロジェクトは、Pythonを学ぶための良い言い訳かもしれません。 (そして楽しいです!)
あるいは、人々が以前にこれを行ったことがあると思います - 画像のURLまたはURLのパターンを考えると、あなたが望むことをするアプリがほぼ確実にそこにあります。周りを見てください。
コミックの著者に手紙を書いて、おそらく本として、おそらく購入のために、何らかの形でバルクで利用できるかどうかを尋ねることができます。 Ctrl-Alt-Delは、アーカイブ全体をダウンロードする追加の負荷を単純に吸収するのに十分な人気があると思いますが、小さなWebサイトはそれを高く評価していないかもしれません - 彼らは本当にあなたや何かを止めることができないと思います。
あなたの質問に関しては、このサイトはあなたのプログラミングの質問に役立ち、あなたが抱えている問題を助け、途中であなたを微調整する必要があります - しかし、あなたがあなたのためにあなたのためにあなたのコードを書くように頼むなら、ほとんどの人はそれを感謝しません。 Pythonを学び、自分で試してみてください。問題が発生したら、尋ねてください。
私は、変更されたユーザーエージェント(ティミーがオリジナルをブロックしたため)とBeautifulSoupを使用してUrllibを使用します。とにかく、日付ジェネレーターは次のとおりです。
t1 = datetime.date(2002, 10, 22)
t2 = datetime.date.today()
while t2 > t1:
t1 = t1 + datetime.date.resolution
toon = t1.strftime("%Y%m%d")
url1 = str(toon)
main(url1)
そして私のmain():このように見えます(「ファイルが存在する場合はチェック」を取得しました)
def main(url):
con = httplib.HTTPConnection("www.cad-comic.com")
con.request("GET", "/cad/" + url)
r1 = con.getresponse()
soup = BeautifulSoup(r1)
img = soup.findAll("img")[1]
nImg = str(img)
imgSplit = re.split('"', nImg)
imgUrl = imgSplit[1]
if imgUrl.startswith('http://www.cad-comic.com/comics/'):
MeOpans().retrieve(imgUrl, url + ".jpg")
print "Downloaded " + url
「Meopans()」は次のようになります:
class MeOpans(urllib.URLopener):
version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'