中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在python3中利用referer實現圖片防盜鏈

發布時間:2021-04-30 16:26:28 來源:億速云 閱讀:453 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關怎么在python3中利用referer實現圖片防盜鏈,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

python的五大特點是什么

python的五大特點:1.簡單易學,開發程序時,專注的是解決問題,而不是搞明白語言本身。2.面向對象,與其他主要的語言如C++和Java相比, Python以一種非常強大又簡單的方式實現面向對象編程。3.可移植性,Python程序無需修改就可以在各種平臺上運行。4.解釋性,Python語言寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序。5.開源,Python是 FLOSS(自由/開放源碼軟件)之一。

referer防盜鏈技術:

referer防盜鏈技術是服務器通過檢查客戶端提起的請求包內的referer字段來阻止圖片下載的,如果referer字段錯誤,服務器會跳到另一個地址,這將導致錯誤的圖片下載。

上面已經了解到了referer防盜鏈技術,下面直接上代碼。

(我用的是python3,需要用到requests,html非系統包

下載方法:用python中的pip下載即可)

import urllib.request 
import requests 
import time 
import os 
import shutil 
from lxml import html 
def getPage(): 
  ''''' 
  從網站首頁獲取妹子的網址 
  ''' 
  fres=open('res.txt','w') 
  htm=urllib.request.urlopen('http://www.mzitu.com/') 
  out=htm.read() 
  out=html.fromstring(out) 
  urls=[] 
  for res in out.xpath('//ul[@id="pins"]/li/a/@href'): 
    urls.append(res) 
  for r in urls: 
    fres.write(r) 
    fres.write('\n\r') 
  fres.close() 
  return urls 
def getPiclink(url): 
  ''''' 
  獲取一個妹子的標題和她的所有圖片地址 
  ''' 
  i_headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0'} 
  sel=urllib.request.Request(url, headers=i_headers) 
  #使用代理瀏覽器訪問網站 
  sel.add_header('Referer', 'http://www.mzitu.com/') 
  #將referer字段添加到請求包里 
  sel=urllib.request.urlopen(sel).read() 
  sel=html.fromstring(sel) 
  total=sel.xpath('//div[@class="pagenavi"]/a[last()-1]/span/text()')[0] 
  title=sel.xpath('//h3[@class="main-title"]/text()')[0] 
  jpglist=[] 
  for i in range(int(total)): 
    link='{}/{}'.format(url, i+1) 
    s=html.fromstring(urllib.request.urlopen(link).read()) 
    jpg=s.xpath('//div[@class="main-image"]/p/a/img/@src')[0] 
    jpglist.append(jpg) 
  return title,jpglist 
def downloadJpg(title,piclist,link): 
  ''''' 
  下載getPiclink()獲取到的妹子的圖片 
  ''' 
  k=1 
  count=len(piclist) 
  dirname=u"[%sP]%s" %(str(count),title) 
  if os.path.exists(dirname): 
    shutil.rmtree(dirname) 
  os.mkdir(dirname) 
  i_header={} 
  i_header['Referer']=link 
  #將getPiclink()獲取到的妹子的首頁網址作為referer字段的值 
  for i in piclist: 
    filename='%s/%s/%s.jpg' %(os.path.abspath('.'),dirname, k) 
    with open(filename,'wb') as jpg: 
      jpg.write(requests.get(i, headers=i_header).content) 
    #將referer字段添加到請求包里并下載圖片 
      time.sleep(0.5) 
    k+=1 
if __name__=='__main__': 
  for link in getPage(): 
    title,pic=getPiclink(link) 
    downloadJpg(title,pic,link) 
  print('OK!')

上述就是小編為大家分享的怎么在python3中利用referer實現圖片防盜鏈了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝阳县| 岢岚县| 酉阳| 安图县| 鸡泽县| 新竹县| 宕昌县| 栖霞市| 财经| 荥阳市| 泽普县| 来安县| 化德县| 西峡县| 同心县| 呼和浩特市| 望城县| 昭觉县| 房山区| 扎兰屯市| 大新县| 兰州市| 天祝| 海城市| 安西县| 尼勒克县| 华亭县| 施甸县| 织金县| 萍乡市| 临邑县| 龙井市| 左云县| 玛纳斯县| 广安市| 恩施市| 霸州市| 芦山县| 连云港市| 宜良县| 新疆|