python爬虫实践之爬取美女图片

news/2024/11/2 13:20:38/

目录

概述

准备

所需模块

涉及知识点

运行效果

完成爬虫

1. 分析网页

2. 爬虫代码


概述

爬取妹子图网的美女图片。

准备

所需模块

  • time
  • requests
  • lxml

涉及知识点

  • python基础
  • requests模块基础
  • xpath表达式基础

运行效果

控制台打印:

电脑本地文件:

完成爬虫

1. 分析网页

打开妹子图网,按F12分析网页

第一页的URL是:https://www.meizitu.com/a/list_1_1.html

第二页的URL是:https://www.meizitu.com/a/list_1_2.html

第三页的URL是:https://www.meizitu.com/a/list_1_3.html

故分析三者可以得出:

# 第1页:https://www.meizitu.com/a/list_1_1.html
# 第2页:https://www.meizitu.com/a/list_1_2.html
# 第3页:https://www.meizitu.com/a/list_1_3.html
# 故可以推断出URL公式:url="https://www.meizitu.com/a/list_1_"+page_index+".html"
# 其中page_index指的是页码

获取每一页的URL后,接着是获取该页图片的超链接,然后通过该超链接进入具体的页面下载图片。

这些超链接可以通过xpath表达式进行提取。

接下来进入具体的页面:

这标题和超链接也可以xpath表达式进行提取。

2. 爬虫代码

import timeimport requests
from lxml import etree# 爬虫实战:爬取妹子图网的图片# 第1页:https://www.meizitu.com/a/list_1_1.html
# 第2页:https://www.meizitu.com/a/list_1_2.html
# 第3页:https://www.meizitu.com/a/list_1_3.html
# 故可以推断出URL公式:url="https://www.meizitu.com/a/list_1_"+page_index+".html"
# 其中page_index指的是页码page_index = 1  # 这里只下载了第一页相关的图片,如需下载更多可以使用for循环
# 请求头
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"
}
# 组装请求的URL
url = "https://www.meizitu.com/a/list_1_" + str(page_index) + ".html"
# 发送请求,获取响应的HTML源代码
response = requests.get(url, headers=header).content.decode("gb2312")
# 将源码字符串转换成HTML对象
html = etree.HTML(response)
# 通过xpath表达式提取页面中通往图片详情页面的超链接,返回一个列表
image_link_all_list = html.xpath("//li[@class='wp-item']/div[@class='con']/div[@class='pic']/a/@href")
# 循环列表中的图片详情页面的超链接
for image_link in image_link_all_list:# 获取图片详情页面的HTML源码response_image_detail = requests.get(image_link).content# 将源码字符串转换成HTML对象html_image_detail = etree.HTML(response_image_detail)# 获取每张图片的下载链接image_link_detail_list = html_image_detail.xpath("//div[@id='picture']//img/@src")# 获取每张图片的标题image_name_detail_list = html_image_detail.xpath("//div[@id='picture']//img/@alt")# 条件判断if len(image_link_detail_list) == len(image_name_detail_list):# 循环图片下载链接for i in range(0, len(image_name_detail_list)):# 请求每张图片的数据data = requests.get(image_link_detail_list[i]).content# 下载提示print("正在下载图片" + image_name_detail_list[i] + ".jpg中......")# 将图片下载保存到电脑本地with open(r"C:/Users/Administrator/Pictures/images/" + image_name_detail_list[i] + ".jpg","wb") as file_object:# 写入数据file_object.write(data)# 缓一缓time.sleep(0.5)

 


http://www.ppmy.cn/news/687769.html

相关文章

Python3 大型网络爬虫实战 003 — scrapy 大型静态图片网站爬虫项目实战 — 实战:爬取 169美女图片网 高清图片

原博文链接:http://www.aobosir.com/blog/2016/12/26/python3-large-web-crawler-169bb-com-HD-beautiful-pictures/ 开发环境观察网页 和 网页源代码写程序 下载高清图片 下载 169美女图片网 的所有西洋美女的图片防反爬技术搞定 开发环境 Python第三方库&#x…

爬取福利,搞了一堆美女图片,代码奉上,多张福利

点赞再看,养成习惯 目录 展示成果: 分析网站 总结下: 技术分析 注:图片下载可运行

ModaHub ——向量数据库Milvus特征向量和预写式日志教程

目录 特征向量 什么是特征向量 特征向量的优势 应用领域 预写式日志 数据可靠性 缓冲区设置 旧日志删除 特征向量 什么是特征向量 向量是具有一定大小和方向的量,可以简单理解为一串数字的集合,就像一行多列的矩阵,比如&#xff1a…

【骚操作】Python 教你无损提取视频中的美女图片

前言 人类都是视觉动物,不管是男生还是女生看到漂亮的小姐姐、小哥哥就想截图保存下来。可是截图会对画质会产生损耗,截取的 画面不规整,像素不高等问题。 用 Python 写一个逐帧无损保存视频画面的小脚本大致可以分为三个步骤: …

花瓣网爬取美女图片 每次20张

现在是晚上11点40了,今天是第一天学习爬虫知识,初学者,只是很大概的接触Python的语法,所以今天一下午加晚上学的挺累的。 遇到第一个问题就是Python脚本运行出现语法错误:IndentationError: unindent does not match …

用python爬虫爬取海量高清美女图片,亲测2021年12月20日可用,适合初学者

因为近期在自学python,想着先通过一些项目提升对这个编程语言的兴趣,而且爬虫也是python中对基本功要求较低的项目,就根据所学内容编写了一个爬虫项目爬取某网站的图片。温馨提示:爬虫学得好,牢饭吃到饱,学…

Java爬虫-使用爬虫下载千张美女图片!

目的 爬取搜狗图片上千张美女图片并下载到本地 准备工作 爬取地址:https://pic.sogou.com/pics?query%E7%BE%8E%E5%A5%B3 分析 打开上面的地址,按F12开发者工具 - NetWork - XHR - 页面往下滑动XHR栏出现请求信息如下: Request URL &a…

手把手带你爬取百度美女图片,Python练手项目!

本文纯技术角度出发,教你如何用Python爬虫获取百度美女图片——技术无罪。 目标站点 百度图片使用关键字搜索 小姐姐私房照 https://image.baidu.com/开发环境 系统:Windows10 64位Python版本:Python3.6.5(Python3以上版本即可)IDE&#…