python批量爬取圖片的方法詳解

爬取的目標(biāo)網(wǎng)站為
https://sc.chinaz.com/tupian/qinglvtupian.html
如果爬取多頁,需要依次遍歷每一頁,經(jīng)過分析跳轉(zhuǎn)其它頁面的規(guī)律如下
https://sc.chinaz.com/tupian/qinglvtupian_N.html N從2開始,除了第一頁不同,后面跳轉(zhuǎn)其它頁面規(guī)律相同
爬蟲步驟
- 根據(jù)請求url地址獲取網(wǎng)頁源碼,使用requests庫
- 通過xpath解析源碼獲取需要的數(shù)據(jù)
- 獲取到數(shù)據(jù)下載到本地
爬取前十頁圖片到本地
根據(jù)頁碼獲取網(wǎng)絡(luò)源碼
def create_request(page):
if page == 1:
url = 'https://sc.chinaz.com/tupian/qinglvtupian.html'
else:
url = 'https://sc.chinaz.com/tupian/qinglvtupian_'+str(page)+'.html'
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
}
request = urllib.request.Request(url,headers=header)
#獲取網(wǎng)絡(luò)源碼
response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')
return content
使用xpath解析網(wǎng)頁
使用xpath需要在chrome中安裝此插件,安裝xpath完成后,按alt+shift+x就會(huì)出現(xiàn)黑框
//img[@class="lazy"]/@alt #獲取圖片名稱 //img[@class="lazy"]/@data-original #獲取圖片地址

解析網(wǎng)頁并下載圖片
下載圖片、網(wǎng)頁、視頻使用的函數(shù)為urllib.request.urlretrieve()
def down_load(content):
tree = etree.HTML(content) #解析網(wǎng)頁數(shù)據(jù) 解析本地的html文件 etree.parse('D:/pages/test.html')
name_list = tree.xpath('//img[@class="lazy"]/@alt')
# 圖片會(huì)進(jìn)行懶加載
src_list = tree.xpath('//img[@class="lazy"]/@data-original')
for i in range(len(name_list)):
name = name_list[i]
src = src_list[i]
url = 'https:'+src
urllib.request.urlretrieve(url,filename='../loveImg/'+name+'.jpg')#先在當(dāng)前目錄下創(chuàng)建loveImg文件夾
主函數(shù)如下
if __name__ == '__main__':
start_page = int(input("開始頁"))
end_page = int(input("結(jié)束頁"))
for page in range(start_page,end_page+1):
context = create_request(page)
down_load(context)
下載的圖片會(huì)在loveImg目錄

以上就是python批量爬取圖片的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于python批量爬取圖片的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python使用Faker進(jìn)行隨機(jī)數(shù)據(jù)生成
大家好,本篇文章主要講的是python使用Faker進(jìn)行隨機(jī)數(shù)據(jù)生成,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02
python實(shí)現(xiàn)高斯判別分析算法的例子
今天小編就為大家分享一篇python實(shí)現(xiàn)高斯判別分析算法的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Django中日期處理注意事項(xiàng)與自定義時(shí)間格式轉(zhuǎn)換詳解
這篇文章主要給大家介紹了關(guān)于Django中日期處理注意事項(xiàng)與自定義時(shí)間格式轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08

