基于python實(shí)現(xiàn)獲取網(wǎng)頁(yè)圖片過程解析
環(huán)境:python3, 要安裝bs4這個(gè)第三方庫(kù)
獲取請(qǐng)求頭的方法
這里使用的是Chrome瀏覽器。
打開你想查詢的網(wǎng)站,按F12,或者鼠標(biāo)右鍵一下選擇檢查。會(huì)彈出如下的審查元素頁(yè)面:
然后點(diǎn)擊上方選項(xiàng)中的Network選項(xiàng):
此時(shí)在按Ctrl+R:
選擇下方框中的第一個(gè),單擊:
選擇Headers選項(xiàng),其中就會(huì)有Request Headers,包括你需要的信息。
介紹:這個(gè)程序是用來批量獲取網(wǎng)頁(yè)的圖片,用于新手入門
注意:由于是入門的程序在獲取某些網(wǎng)頁(yè)的圖片時(shí)會(huì)出問題?。。。。?/p>
import osimport urllib.requestfrom bs4 import BeautifulSoup# 網(wǎng)址url = 'http://www2017.tyut.edu.cn/'# 建立請(qǐng)求對(duì)象request = urllib.request.Request(url)# 加入請(qǐng)求頭(一定要換成自己的!?。。。﹔equest.add_header(’User-Agent’, ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36’)# 獲取請(qǐng)求code = urllib.request.urlopen(request)# 得到html代碼html = code.read().decode(’utf-8’)# 將html的標(biāo)簽轉(zhuǎn)成對(duì)象(方便后面的操作)bs = BeautifulSoup(html, ’html.parser’)# 提取所有的img標(biāo)簽imagesUrl = bs.find_all(’img’)sources = []# 建立存放的路徑(路徑一定要存在!?。。。。。ゝilepath = os.getcwd() + ’images’def createFile(path: str, fpath): urllib.request.urlretrieve(path, fpath)# 獲取圖片的路徑(網(wǎng)址+img標(biāo)簽的src屬性的值)for img in imagesUrl: sources.append(url + str(img.get(’src’)))for src in sources: # 用split是防止請(qǐng)求帶參 baseName = os.path.basename(src).split(’?’) # 圖片名 fileName = filepath + baseName[0] print('url=' + src, 'filename=' + fileName) createFile(src, fileName)print(’這次您一共下載了圖片’ + str(len(sources)) + ’張’)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python共軛梯度法特征值迭代次數(shù)討論2. 利用FastReport傳遞圖片參數(shù)在報(bào)表上展示簽名信息的實(shí)現(xiàn)方法3. H5頁(yè)面使用audio標(biāo)簽播放音頻4. ASP.NET MVC視圖頁(yè)使用jQuery傳遞異步數(shù)據(jù)的幾種方式詳解5. CSS3使用過度動(dòng)畫和緩動(dòng)效果案例講解6. ASP.NET MVC通過勾選checkbox更改select的內(nèi)容7. react axios 跨域訪問一個(gè)或多個(gè)域名問題8. 詳解php如何合并身份證正反面圖片為一張圖片9. AJAX實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果10. XHTML 1.0:標(biāo)記新的開端
