案例一:爬取網站圖片


這次需要爬取的圖片內容為:www.dbmeinv.com這個網站的圖片。

一、爬取一頁的圖片內容

import requests
from lxml import etree
import  os
#1.獲取第一頁的url url="https://www.dbmeinv.com/?pager_offset=1"
#獲取頭的原因是為了解決反扒機制。通過User-Agent可以解決70%~80%的反扒。 headers={'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"} #2.發送請求,接受響應 response=requests.get(url,headers=headers) #3.提取數據 #生成一個xpath解析對象 selector=etree.HTML(response.text) #獲取第一頁所有圖片的URL列表 url_list=selector.xpath("//div/a/img/@src") #再次發送請求,獲取圖片內容
#定義一個path變量用於存放圖片位置 path="newpath" #遍歷第一頁中所有圖片的url列表 for url in url_list: if not os.path.exists(path): os.makedirs(path) #發送請求,接受響應 data = requests.get(url, headers = headers) #保存數據,寫入要用二進制 with open(path + "/"+url[-7:],"wb")as f: f.write(data.content)

  說明:解決反扒,加入請求參數。例如通過User-Agent可以解決70%~80%的反扒問題。

二,爬取網站中所有頁的圖片

import requests
from lxml import etree
import  os
#1.url
url_list=["https://www.dbmeinv.com/?pager_offset={}".format(i) for i in range(1,10)]
headers={'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"}
#2.發送請求,接受響應
for url in url_list:
	response=requests.get(url,headers=headers)

#3.提取數據
#生成一個xpath解析對
	selector=etree.HTML(response.text)

#獲取圖片的URL列表
	url_list2=selector.xpath("//div/a/img/@src")
#再次發送請求,獲取圖片內容
	path="newpath"

	for url in url_list2:
		if not os.path.exists(path):
			os.makedirs(path)
		#發送請求,接受響應
			data = requests.get(url, headers = headers)
		#保存數據,寫入要用二進制
		with open(path + "/"+url[-7:],"wb")as f:
			f.write(data.content)

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM