這次需要爬取的圖片內容為: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)
