目录

概述

准备

所需模块

涉及知识点

运行效果

完成爬虫

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)

python爬虫实践之爬取美女图片相关推荐

  1. 爬虫实践:爬取搜狗图片

    前言 本文中,将通过爬取搜狗图片为例,分析Ajax请求来抓取网页数据 (通过传入关键字,已达到爬取不同类型图片的目的) AJAX引擎其实是一个JavaScript对象,全写是 window.XMLHt ...

  2. python爬虫实践之爬取hao123音乐音乐导航

    目录 概述 准备 所需模块 涉及知识点 运行效果 完成爬虫 1. 分析网页 2. 爬虫代码 概述 爬取hao123上的所有音乐导航链接 准备 所需模块 re模块 requests模块 涉及知识点 py ...

  3. Python爬虫实战 | (9) 爬取搜狗图片

    本篇博客我们将爬取百度图片,输入搜索词,爬取与搜索词相关的图片. 首先打开搜狗图片https://pic.sogou.com/,比如搜索"猫",此时的URL如下: https:// ...

  4. python爬微博关键字_一个简单的python爬虫实践,爬取包含关键词的新浪微博

    此项目主要功能是通过微博"搜索"页面,每天自动爬取所有包含自定list中词汇的微博原数据.低速可控,简单粗暴,适合用来有针对性的搜集数据量不是很大的包含关键词的微博,每日可爬3-6 ...

  5. python 爬虫实践 (爬取链家成交房源信息和价格)

    简单介绍 pi: 简单介绍下,我们需要用到的技术,python 版本是用的pyhon3,系统环境是linux,开发工具是vscode:工具包:request 爬取页面数据,然后redis 实现数据缓存 ...

  6. python爬虫实践之爬取豆瓣高评分电影

    目录 概述 准备 所需模块 涉及知识点 运行效果 完成爬虫 1. 分析网页 2. 爬虫代码 3. 整理总结 概述 爬取豆瓣的高评分的电影. 准备 所需模块 re模块 requests模块 涉及知识点 ...

  7. 【Python爬虫_8】爬取必应图片

    "' 需求:爬取必应的图片,并下载,以老师为例: '" 1.首先通过XHR找到图片的url地址,打开该地址可看到 确认链接找到正确,然后多找几个来分析,可以得到通用的url: ur ...

  8. Python爬虫:批量爬取变形金刚图片,下载保存到本地。

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文文章来自:CSDN 作者:Guapifang 其实和爬取普通数据本质一样,不过 ...

  9. python爬虫六:爬取电影图片及简介

    # -*- coding: utf-8 -*-#2345电影排行榜 import requests from bs4 import BeautifulSoup#获取网站的通用类 def get_htm ...

最新文章

  1. poj1144(割点)
  2. Linux下编译一个静态链接的程序的注意点
  3. 百度:病种类贴吧全面停止商业合作
  4. oracle表空间,角色,权限,表,索引,序列号,视图,同义词,约束条件,存储函数和过程,常用数据字典,基本数据字典信息,查看VGA信息,维护表空间,创建表空间等信息
  5. flask同源策略解决办法及flask-cors只允许特定域名跨域
  6. html中鼠标左键自定义多级菜单,CSS多级菜单的实现代码
  7. 怎么让背景铺满整个页面_必能用到,一页PPT中想放超多图片怎么办?
  8. java数据结构- - - -栈
  9. Fuel 9.0安装Openstack由于NTP检查没通过导致失败--解决办法
  10. 百度发布全新 NLG 训练模型 ERNIE-GEN,获 5 项 SOTA!
  11. thinkphp5 图片压缩旋转_有非常多的图片,该怎么制作PPT?
  12. 计算机在医疗领域的发展未来,5G医疗在人工智能领域未来的发展
  13. 量化噪声的大小与什么成正比_量化信噪比的公式?量化级数与每个样值的比特数之间的关系是什么?...
  14. 让我们旋转跳跃不停歇~~~当3D打印遇上八音盒!(一)
  15. 思维导图 XMind 闯关之路(第02关)插入各类符号
  16. 一名IT民工开通博客
  17. 解决阿里云端口不通 配置安全组无效
  18. 基于SAR影像的鱼塘提取
  19. 策划的权限、视野与产品的最终高度
  20. gis与计算机科学之间的联系,GIS与地图学及电子地图

热门文章

  1. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第三章 网络工程-原始套接字与嗅探(1)主机发现工具与包嗅探
  2. linux cent os6.5,linux(Cent OS6.5)下安装SVN
  3. Python中遍历字典以及字典中的键和值
  4. 学习机器人SLAM导航核心技术(二)之ROS
  5. TS中的class类
  6. 制作短视频要注意什么?三个内容创作要点别忽视,赶紧收藏起来
  7. Uni-app学习从0到1开发一个app——(3)简单小工程内容介绍
  8. c++ fstream流seekg()重定位问题
  9. 从零开始手把手教你使用javascript+canvas开发一个塔防游戏02敌人自动寻路
  10. 基于盛大云IaaS部署CloudFoundry平台