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

美妆网站建设环境分析谷歌广告代理

美妆网站建设环境分析,谷歌广告代理,做网站推广 需要ftp,如何制作网站视频的软件python抓取优美图库小姐姐图片 整体功能概述 这段 Python 代码定义了一个名为 ImageDownloader 的类,其主要目的是从指定网站(https://www.umei.cc)上按照不同的图片分类,爬取图片并保存到本地相应的文件夹中。不过需要注意&…

python抓取优美图库小姐姐图片

整体功能概述

这段 Python 代码定义了一个名为 ImageDownloader 的类,其主要目的是从指定网站(https://www.umei.cc)上按照不同的图片分类,爬取图片并保存到本地相应的文件夹中。不过需要注意,未经授权爬取网站数据可能存在合法性问题,代码仅用于学习代码逻辑和合理的测试场景等情况。

代码思路详细拆解

  1. 类的初始化(__init__ 方法)

    • 定义了 base_url 变量,用于存储目标网站的基础地址,即 https://www.umei.cc
    • 创建了一个空字典 category_urls,后续将用于存放不同图片分类对应的具体页面链接。
    • 设置了请求头 headers,模拟浏览器发起请求,使服务器更有可能正常响应请求,避免因反爬机制而拒绝访问。
  2. 创建分类文件夹(create_category_directories 方法)

    • 遍历 category_urls 字典中的每个分类名称(键)。
    • 针对每个分类名称尝试创建对应的文件夹,若文件夹已存在,则打印提示信息跳过创建;若创建过程中出现其他 OSError 类型的错误,则打印相应的错误提示。
  3. 发送 HTTP GET 请求(send_get_request 方法)

    • 接收一个 url 参数,使用 requests 库发送 GET 请求,并传入设定好的请求头。
    • 若请求过程中出现 requests.RequestException 异常(比如网络连接问题、服务器拒绝访问等),则打印异常相关信息,并返回 None,表示请求失败;若请求成功,则设置响应内容的编码为 utf-8,然后返回响应对象。
  4. 下载图片(download_image 方法)

    • 接收图片名称 image_name 和图片的 URL image_url 作为参数。
    • 首先从图片 URL 中提取文件后缀名(例如 .jpg.png 等),然后通过调用 send_get_request 方法获取图片的二进制内容。
    • 使用 with 语句以二进制写入模式打开一个本地文件(文件名由图片名称和后缀名组成),并将获取到的图片二进制内容写入该文件,以此实现图片的下载保存。
  5. 主流程(main 方法)

    • 第一步,先向网站的图片分类主页面(base_url + '/weimeitupian/')发送 GET 请求,若请求成功,使用 BeautifulSoup 库解析返回的 HTML 页面内容。
    • 第二步,通过 CSS 选择器从解析后的页面中查找不同的图片分类元素,提取分类名称和对应的链接,并将它们存入 category_urls 字典中。
    • 第三步,调用 create_category_directories 方法,依据 category_urls 字典中的分类名称创建对应的本地文件夹。
    • 第四步,遍历 category_urls 字典,针对每个分类,再次向其对应的页面发送 GET 请求,若请求成功,同样使用 BeautifulSoup 解析页面,获取该分类下每张图片相关的元素信息。
    • 第五步,对于每张图片,提取图片名称以及图片详情页的链接,接着向图片详情页发送 GET 请求,若该请求也成功,继续解析详情页找到真正的图片 URL,最后调用 download_image 方法将图片下载保存到对应的分类文件夹下,同时在控制台打印保存成功的图片名称信息;在各个环节如果出现请求失败或者找不到相应元素等情况,会打印对应的提示信息,说明图片保存失败以及失败的原因。
  6. 实例化类并执行主流程
    在代码的最后,实例化了 ImageDownloader 类,并调用其 main 方法启动整个图片爬取和保存的流程。

# encoding=utf-8
import requests
from bs4 import BeautifulSoup
import osclass ImageDownloader:def __init__(self):self.base_url = 'https://www.umei.cc'self.category_urls = {}self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'}def create_category_directories(self):"""创建以图片分类名称为名称的文件夹"""for category_name in self.category_urls:try:os.mkdir(f'./{category_name}')except FileExistsError:print(f"文件夹 {category_name} 已存在,跳过创建")except OSError as e:print(f"创建文件夹 {category_name} 时出现错误: {e}")def send_get_request(self, url):"""发送HTTP GET请求并返回响应对象,设置正确的编码"""try:response = requests.get(url, headers=self.headers)response.encoding = 'utf-8'return responseexcept requests.RequestException as e:print(f"请求 {url} 出现异常: {e}")return Nonedef download_image(self, image_name, image_url):"""根据给定的名称和图片URL,下载图片并保存到本地对应的文件夹中"""file_extension = image_url.split('.')[-1]  # 获取后缀名image_content = self.send_get_request(image_url).contentwith open(f'./{image_name}.{file_extension}', 'wb') as file:file.write(image_content)def main(self):main_page_response = self.send_get_request(self.base_url + '/weimeitupian/')if main_page_response:main_page_soup = BeautifulSoup(main_page_response.text, 'html.parser')category_elements = main_page_soup.select('body > div.Clbc_top > div.taotu-nav')for category_element in category_elements:category_name = category_element.find('a').get_text()category_href = category_element.find('a').get('href')self.category_urls[category_name] = category_hrefself.create_category_directories()  # 创建文件夹# 进行保存数据for category_name, category_href in self.category_urls.items():category_page_response = self.send_get_request(self.base_url + category_href)if category_page_response:category_page_soup = BeautifulSoup(category_page_response.text, 'html.parser')image_elements = category_page_soup.select('#infinite_scroll > div')for image_element in image_elements:image_link_element = image_element.select_one('div.item_b.clearfix > div.title > span > a')if image_link_element:image_name = image_link_element.get_text()  # 图片名字image_href = 'https://www.umei.cc' + image_link_element.get('href')  # 子页面地址sub_page_response = self.send_get_request(image_href)if sub_page_response:sub_page_soup = BeautifulSoup(sub_page_response.text, 'html.parser')img_url_element = sub_page_soup.select_one('body > div:nth-child(3) > div.photo > div.big-pic > a > img')if img_url_element:img_url = img_url_element.get('src')self.download_image(category_name + '/' + image_name, img_url)print(category_name + '/' + image_name)  # 保存else:print(f"无法获取 {category_name + '/' + image_name} 的图片URL,保存失败")else:print(f"请求子页面 {image_href} 失败,{category_name + '/' + image_name} 保存失败")else:print(f"无法获取 {category_name} 分类下某张图片的元素信息,跳过保存")else:print(f"请求 {self.base_url + category_href} 失败,跳过该分类下图片保存")downloader = ImageDownloader()
downloader.main()

http://www.dinnco.com/news/45539.html

相关文章:

  • 外贸网站建设谷歌推广搜索推广竞价托管哪家好
  • 做网站要准备哪些营销软文范例
  • 最新企业网站系统seo搜索优化是什么
  • 怎么做像表白墙的网站软文推广平台
  • 外贸google推广搜索引擎优化概述
  • 网站站内消息设计方案今日新闻摘抄十条简短
  • 网站建设英文翻译中国十大门户网站排行
  • 佛山市国外网站建设公司windows优化大师免费版
  • 网站建设欲网站维护界首网站优化公司
  • 金山区网站建设360推广平台登录入口
  • 驾校一点通网站怎么做百度收录网站需要多久
  • 摄影作品网站推荐东莞今日新闻大事
  • 成华区微信网站建设百度网址大全官网
  • 网站制作布局长沙正规竞价优化服务
  • 做网站不会配色怎么办沪深300指数怎么买
  • 做服装批发必逛的网站十大搜索引擎地址
  • 重庆网站网络推广推广长沙网红打卡景点排行榜
  • 株洲网上购房节seo按照搜索引擎的
  • 网站建设注意事项知乎免费做网站
  • 邢台做网站优化费用女教师遭网课入侵视频
  • 如何做测评视频网站周口网站建设公司
  • 网站建设解决方案班级优化大师官网下载
  • 建设银行信用卡中心网站首页seo综合查询怎么进入网站
  • 淮安网站建设方案产品营销策划方案
  • 网络小说网站建设网站推广策划案
  • 静态宠物网站设计论文百度热搜 百度指数
  • 新闻资讯app制作公司关键词优化的软件
  • 与小学生一起做网站百度一下百度首页官网
  • 买域名做网站表白seo营销名词解释
  • 重庆彼客的网站是谁家做的抖音优化排名