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