Python 3はWebページの画像ダウンロードを実現します。

3806 ワード

まず、いくつかのpython webプログラミングの基礎知識を紹介します。
1.GETとPOSTの違い
1)POSTはウェブサーバにものを置くように設計されていますが、GETはサーバからものを取るために設計されています。GETはサーバに少ないデータを送ることができます。Getはデータを送ることができるのは、サーバーを設計するためだけです。どのようなデータが必要ですか?POSTの情報はHTTP要求の内容として、GETはHTTPヘッダで転送されます。
2)POSTとGETはHTTPで伝送する方式が違っています。GETのパラメータはHTTPのヘッダで転送されます。PostのデータはHTTP要求の内容で転送されます。
3)POSTはデータを送信する時、URLに表示する必要はなく、GET方法はURLに表示します。
4)GET方法は、URL長に制限されているため、約1024バイトしか渡されない。POST伝送のデータ量が大きいので、2 Mまで達成できます。
2.Cookies技術
Cookiesは今よくみんなに言われていますが、一体何がCookiesですか?
Cookiesは、ウェブサーバが少量のデータをクライアントのハードディスクやメモリに記憶させたり、クライアントのハードディスクからデータを読み取る技術です。Cookiesはあるウェブサイトをブラウズする時、ウェブサーバーからハードディスクの上の1つのとても小さいテキストファイルに置いて、それはあなたのユーザーID、パスワード、ブラウズしたことがあるホームページ、滞在の時間などの情報を記録することができます。
再度このウェブサイトに来た時、ウェブサイトはCookiesを読み取って、あなたの関連している情報を知ることによって、相応の動作をすることができます。例えば、ページであなたを歓迎するスローガンを表示したり、ID、パスワードを入力しないで直接登録したりします。
本質的には、あなたの身分証と見なすことができます。しかし、Cookiesはコードとして実行できません。また、ウイルスを送信することもできません。お持ちのものはサーバーでしか読み取りできません。
保存された情報の断片は「名前/値」対(name-value pairs)の形で保存されています。一つの「名前/値」対は一つの名前だけのデータです。
一つのウェブサイトはあなたのパソコンに置いてある情報しか入手できません。他のCookiesファイルから情報を得ることができません。あなたのパソコンの他のものも入手できません。
Cookiesの内容はほとんど暗号化されていますので、一般ユーザーは意味のないアルファベットの数字の組み合わせにすぎないようです。サーバのCGI処理プログラムだけがその本当の意味を知っています。
Python 3はWebページの画像を通じて基本的な機能点をダウンロードします。
  • が実現する主な機能点:
  • 解析ページの画像リンク
  • は、画像リンクを検出し、画像フォーマットの画像サイズが要求に合わない場合は、
  • をダウンロードしない。
  • 異常処理機構に加入する
  • 自動ファイル名抽出、リンクから直接ファイル名を抽出する
  • Python 3はWebページの画像を通じて、参照コードをダウンロードします。
    
    from urllib import request
    import threading
    from time import sleep,ctime
    from html import parser
    def downjpg( filepath,FileName ="default.jpg" ):
     try:
      web = request.urlopen( filepath)
      print("      "+filepath+"
    ") jpg = web.read() DstDir="E:\\image\\" print(" "+DstDir+FileName+"
    ") try: File = open( DstDir+FileName,"wb" ) File.write( jpg) File.close() return except IOError: print("error
    ") return except Exception: print("error
    ") return def downjpgmutithread( filepathlist ): print(" %d "%len(filepathlist)) for file in filepathlist: print( file ) print(" ") task_threads=[] # count=1 for file in filepathlist: t= threading.Thread( target=downjpg,args=(file,"%d.jpg"%count) ) count=count+1 task_threads.append(t) for task in task_threads: task.start() for task in task_threads: task.join() # print(" ") class parserLinks( parser.HTMLParser): filelist=[] def handle_starttag(self,tag,attrs): if tag == 'img': for name,value in attrs: if name == 'src': print( value) self.filelist.append(value) #print( self.get_starttag_text() ) def getfilelist(self): return self.filelist def main(WebUrl): #globals flist if __name__ == "__main__": lparser = parserLinks() web = request.urlopen( WebUrl ) #context= web.read() for context in web.readlines(): _str="%s"%context try: lparser.feed( _str) except parser.HTMLParseError: #print( "parser error") pass web.close() imagelist= lparser.getfilelist() downjpgmutithread( imagelist) #downjpgmutithread( flist) #WebUrl="http://www.baidu.com/" # , e WebUrl="http://hi.baidu.com/yuyinxuezi/item/df0b59140a06be27f6625cd4" main(WebUrl)
    以上はPython 3がWebページの写真をダウンロードすることについての紹介です。みなさんの勉強に役立ててください。