import requests
import lxml.html
from lxml import etree
import os
#导入伪装头
headers={"伪装浏览器"} #可以试着伪装自己,因为我爬取的比较小就没有使用上了
base_url=f"https://colorhub.me/photos?page=1" #获取图片的链接地址,我这只爬取了一页图片
req=requests.get(base_url) #发出请求
req.encoding="gbk"
html=etree.HTML(req.text) #将获取到的数据转成HTML文档的形式
hrefs=html.xpath("//*[@class='card photo-card']/a/@href") #定位到每个图片的url地址
for i in hrefs: #循环得到的图片链接,并获取其HTML数据
pic_lode=requests.get(i)
c=etree.HTML(pic_lode.text)
pic_name=c.xpath("//*[@data-magnify='gallery']/@title")[0] #定位到图片的名字
pic_lode_place=c.xpath("//*[@data-magnify='gallery']/@href") #定位到图片的当前源信息
for i in pic_lode_place: #最后一步是循环信息,并写入文件中
x="http:"+i
requ=requests.get(x).content
if not os.path.exists("python爬虫/爬虫图片"):
os.mkdir("python爬虫/爬虫图片")
img_path = "./爬虫图片/" + pic_name + '.jpg'
with open(img_path, 'wb') as f:
f.write(requ)
print(pic_name+".jpg下载完成")
print("全部下载完成")