欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3實現(xiàn)Web網(wǎng)頁圖片下載

 更新時間:2016年01月28日 14:41:29   投稿:lijiao  
這篇文章主要介紹了Python3通過request.urlopen實現(xiàn)Web網(wǎng)頁圖片下載,感興趣的小伙伴們可以參考一下

先來介紹一些python web編程基礎知識

1. GET與POST區(qū)別

1)POST是被設計用來向web服務器上放東西的,而GET是被設計用來從服務器取東西的,GET也能夠向服務器傳送較少的數(shù)據(jù),而Get之所以也能傳送數(shù)據(jù),只是用來設計告訴服務器,你到底需要什么樣的數(shù)據(jù).POST的信息作為HTTP 請求的內容,而GET是在HTTP 頭部傳輸?shù)模?/p>

2)POST與GET在HTTP 中傳送的方式不同,GET的參數(shù)是在HTTP 的頭部傳送的,而Post的數(shù)據(jù)則是在HTTP 請求的內容里傳送;

3)POST傳輸數(shù)據(jù)時,不需要在URL中顯示出來,而GET方法要在URL中顯示;

4)GET方法由于受到URL長度的限制,只能傳遞大約1024字節(jié);POST傳輸?shù)臄?shù)據(jù)量大,可以達到2M

2. Cookies技術

Cookies現(xiàn)在經常被大家提到,那么到底什么是Cookies,它有什么作用 呢?

Cookies是一種能夠讓網(wǎng)站服務器把少量數(shù)據(jù)儲存到客戶端的硬盤或內存,或是從客戶端的硬盤讀取數(shù)據(jù)的一種技術。Cookies是當你瀏覽某網(wǎng)站 時,由Web服務器置于你硬盤上的一個非常小的文本文件,它可以記錄你的用戶ID、密碼、瀏覽過的網(wǎng)頁、停留的時間等信息。

當你再次來到該網(wǎng)站時,網(wǎng)站通過讀取Cookies,得知你的相關信息,就可以做出相應的動作,如在頁面顯示歡迎你的標語,或者讓你不用輸入ID、密碼就直接登錄等等。

從本質上講,它可以看作是你的身份證。但Cookies不能作為代碼執(zhí)行,也不會傳送病毒,且為你所專有,并只能由提供它的服務器來讀取。

保存的信息片斷以“名/值”對(name-value pairs)的形式儲存,一個“名/值”對僅僅是一條命名的數(shù)據(jù)。

一個網(wǎng)站只能取得它放在你的電腦中的信息,它無法從其它的Cookies文件中取得信息,也無法得到你的電腦上的其它任何東西。

Cookies中的內容大多數(shù)經過了加密處理,因此一般用戶看來只是一些毫無意義的字母數(shù)字組合,只有服務器的CGI處理程序才知道它們真正的含義。

Python3通過Web網(wǎng)頁圖片下載基本功能點

  • 要實現(xiàn)的主要功能點:
  • 解析網(wǎng)頁中的圖片鏈接
  • 對圖片鏈接進行檢測,如果圖片格式 圖片大小不符合要求,則不下載
  • 加入異常處理機制
  • 自動文件名提取,從圖片鏈接直接提取文件名

Python3通過Web網(wǎng)頁圖片下載參考代碼:

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("訪問網(wǎng)絡文件"+filepath+"\n")
  jpg = web.read()
  DstDir="E:\\image\\"
  print("保存文件"+DstDir+FileName+"\n")
  try:
   File = open( DstDir+FileName,"wb" )
   File.write( jpg)
   File.close()
   return
  except IOError:
   print("error\n")
   return
 except Exception:
  print("error\n")
  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/" #要抓去的網(wǎng)頁鏈接,默認保存到e盤
WebUrl="http://hi.baidu.com/yuyinxuezi/item/df0b59140a06be27f6625cd4"
main(WebUrl)

以上就是Python3實現(xiàn)Web網(wǎng)頁圖片下載的相關介紹,希望對大家的學習有所幫助。

相關文章

  • python HTTPX庫實現(xiàn)同步異步請求用法示例

    python HTTPX庫實現(xiàn)同步異步請求用法示例

    這篇文章主要為大家介紹了python HTTPX庫實現(xiàn)同步異步請求用法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Flask項目中實現(xiàn)短信驗證碼和郵箱驗證碼功能

    Flask項目中實現(xiàn)短信驗證碼和郵箱驗證碼功能

    這篇文章主要介紹了Flask項目中實現(xiàn)短信驗證碼和郵箱驗證碼功能,需本文通過截圖實例代碼的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2019-12-12
  • python密碼學簡單替代密碼解密及測試教程

    python密碼學簡單替代密碼解密及測試教程

    這篇文章主要介紹了python密碼學簡單替代密碼解密及測試教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 解決Python3 被PHP程序調用執(zhí)行返回亂碼的問題

    解決Python3 被PHP程序調用執(zhí)行返回亂碼的問題

    今天小編就為大家分享一篇解決Python3 被PHP程序調用執(zhí)行返回亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python對日志進行處理的實例代碼

    python對日志進行處理的實例代碼

    本篇文章給大家分享了關于python處理日志的方法以及相關實例代碼,有興趣的朋友們學習下。
    2018-10-10
  • python 域名分析工具實現(xiàn)代碼

    python 域名分析工具實現(xiàn)代碼

    用python實現(xiàn)域名分析,數(shù)據(jù)來源金玉米
    2009-07-07
  • python學習VSCode使用技巧帶你進入高效開發(fā)模式

    python學習VSCode使用技巧帶你進入高效開發(fā)模式

    VsCode是一款開源的編輯器,擁有強大的功能,。由于擁有各種各樣的插件,這就使得VsCode可以做到的事情更多了。在使用的過程中,也是有很多技巧的,掌握一些技巧對于后期寫代碼也會輕松很多
    2021-09-09
  • 帶你認識Django

    帶你認識Django

    今天小編就為大家分享一篇關于帶你認識Django,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 理解深度學習之深度學習簡介

    理解深度學習之深度學習簡介

    這篇文章主要是關于深度學習的簡介,對大家學習了解機器深度學習有一定的幫助,以后會持續(xù)更新本系列,希望能為大家?guī)硪恍┦肇?,讓我們一起來看看下面的文章?/div> 2021-04-04
  • 詳解Python計算機視覺 圖像扭曲(仿射扭曲)

    詳解Python計算機視覺 圖像扭曲(仿射扭曲)

    這篇文章主要介紹了Python計算機視覺 圖像扭曲(仿射扭曲),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03

最新評論