当前位置: 首页 > news >正文

Python爬虫批量下载图片

一、思路:

        1. 分析URL,图片的URL内嵌于base_url的返回当中

        2. 下载图片

二、代码 

import time
import requests
import os
from lxml import etreeclass DownloadImg():'''爬虫进行美女图片下载'''def __init__(self):self.url = 'http://xxxxxx/4kmeinv/'self.base_url = 'xxxxxxxxxx'self.headers = {'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'}self.page = 1#创建图片存储目录def create_img_dir(self):current_dir = os.path.dirname(__file__)img_dir = os.path.join(current_dir,'img')if not os.path.exists(img_dir):os.makedirs(img_dir)return img_dir#下载图片def download_img(self,url_list):for url in url_list:res = requests.get(url=url,headers=self.headers).texttree = etree.HTML(res)self.create_img_dir()#解析for li in tree.xpath('//div[@class="slist"]/ul/li'):img_url = li.xpath('./a/img/@src')[0]full_img_url = self.base_url + img_urlprint(full_img_url)img_name = full_img_url.split('/')[-1]full_img_name = os.path.join(self.create_img_dir(), img_name)# 开始下载图片with open(full_img_name, 'wb') as fs:content = requests.get(url=full_img_url, headers=self.headers).contentfs.write(content)print("{}图片下载完成 ".format(img_name))time.sleep(1)#生成图片URL,返回每个page组成的列表def get_img_url(self,page):url_list = [self.url]if page == 1 :return url_listelif page > 1 :'''https://xxxxxxx/index_3.html'''for i in range(1,page+1):if i == 1 :continuemulti_url = self.url + "index_{}.html".format(str(page))url_list.append(multi_url)return url_listif __name__ == '__main__':#下载页数,2页page = 2#定义类对象down_img = DownloadImg()url = down_img.get_img_url(2)print(url)down_img.download_img(url)print("图片全部下载完成,程序退出")

http://www.lryc.cn/news/233968.html

相关文章:

  • java入门,从CK导一部分数据到mysql
  • 表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
  • Stable Diffusion - StableDiffusion WebUI 软件升级与扩展兼容
  • git创建新分支将项目挂载到新分支操作
  • WEB 自动化神器 TestCafe(一)—安装和入门篇
  • asp.net 学校资源信息管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目
  • 【汇编】栈及栈操作的实现
  • 前段-用面向对象的方式开发一个水管小鸟的游戏
  • Java中利用OpenCV进行人脸识别
  • 23111708[含文档+PPT+源码等]计算机毕业设计基于javaweb的旅游网站前台与后台旅景点
  • Windows安装nvm【node.js版本管理工具】
  • 让资产权利归于建设者:Kiosk使过程变得更简单
  • MLP感知机python实现
  • Es 拼音搜索无法高亮
  • java线性并发编程介绍-锁(二)
  • Java JPA详解:从入门到精通
  • 使用Open3D库处理3D模型数据的实践指南
  • 代码随想录算法训练营第五十八天丨 动态规划part18
  • Pytest自动化测试框架介绍
  • 基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(五)
  • Oracle 监控的指标有哪些和oracle巡检的内容
  • Uniapp有奖猜歌游戏系统源码 带流量主
  • 【算法与数据结构】前言
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • 贝加莱MQTT功能
  • 基于JavaWeb+SSM+购物系统微信小程序的设计和实现
  • 为什么需要Code Review?
  • 【计算机网络笔记】ICMP(互联网控制报文协议)
  • Git教程1:生成和提交SSH公钥到远程仓库
  • 贝茄莱BR AS实时数据采集功能