python爬取图片
Python 抓取网页中的图片
Ps:目标网站为千图网,如有需求,请购买正版,该项目仅用于学习交流使用。
分析目标
1.分析网页的请求信息,将请求头加上,主要是防止反爬。这里需要注意的是它的content-type。
2.分析元素内容,获取相应的目标。
3.需要分析一下url
代码工程
分析号目标后就可以着手写了
python代码:
import requests from lxml import etree import os # 抓取图片 class Spider_qt(object): def __init__(self, pageNo, pageCount): # 反扒 self.headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/74.0.3729.131 Safari/537.36", "Referer": "https://www.58pic.com/" } self.get_page(pageNo, pageCount) # 获取页面 def get_page(self, pageNo, pageCount): for i in range(pageNo, pageNo + pageCount): print("===============================开始抓取第%s页===============================" % i) r = requests.get("https://www.58pic.com/piccate/53-0-0-p" + str(i) + ".html", headers=self.headers) page = etree.HTML(r.content.decode('gbk')) self.get_images(page) # 获取图片 def get_images(self, page): # xpath解析 image_url = page.xpath("///div[@class='image-box']/img/@data-original") image_alt = page.xpath("//div[@class='image-box']/img/@alt") for url, alt in zip(image_url, image_alt): url = "http:" + url file_name = alt + ".jpg" save_path = "F:\\python\\spider\\images\\qt\\" if not os.path.exists(save_path): os.makedirs(save_path) file_save_path = save_path + file_name r = requests.get(url, headers=self.headers) print("正在抓取:" + file_name) try: with open(file_save_path, 'wb') as f: f.write(r.content) except: print("===============================抓取错误===============================") def main(): pageNo = int(input("请输入下载开始页:")) pageCount = int(input("请输入需要下载的页数:")) Spider_qt(pageNo, pageCount) if __name__ == '__main__': main()
效果:
Ps:需要注意的是如果没有requests和lxml需要下载的
作者:lightbc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现