python批量爬取圖片的方法詳解
更新時間:2023年12月11日 09:17:17 作者:開心就好啦啦啦
這篇文章給大家介紹了如何使用python批量爬取圖片,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
爬取的目標網站為
https://sc.chinaz.com/tupian/qinglvtupian.html
如果爬取多頁,需要依次遍歷每一頁,經過分析跳轉其它頁面的規(guī)律如下
https://sc.chinaz.com/tupian/qinglvtupian_N.html N從2開始,除了第一頁不同,后面跳轉其它頁面規(guī)律相同
爬蟲步驟
- 根據請求url地址獲取網頁源碼,使用requests庫
- 通過xpath解析源碼獲取需要的數據
- 獲取到數據下載到本地
爬取前十頁圖片到本地
根據頁碼獲取網絡源碼
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) #獲取網絡源碼 response = urllib.request.urlopen(request) content = response.read().decode('utf-8') return content
使用xpath解析網頁
使用xpath需要在chrome中安裝此插件,安裝xpath完成后,按alt+shift+x就會出現(xiàn)黑框
//img[@class="lazy"]/@alt #獲取圖片名稱 //img[@class="lazy"]/@data-original #獲取圖片地址
解析網頁并下載圖片
下載圖片、網頁、視頻使用的函數為urllib.request.urlretrieve()
def down_load(content): tree = etree.HTML(content) #解析網頁數據 解析本地的html文件 etree.parse('D:/pages/test.html') name_list = tree.xpath('//img[@class="lazy"]/@alt') # 圖片會進行懶加載 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')#先在當前目錄下創(chuàng)建loveImg文件夾
主函數如下
if __name__ == '__main__': start_page = int(input("開始頁")) end_page = int(input("結束頁")) for page in range(start_page,end_page+1): context = create_request(page) down_load(context)
下載的圖片會在loveImg目錄
以上就是python批量爬取圖片的方法詳解的詳細內容,更多關于python批量爬取圖片的資料請關注腳本之家其它相關文章!