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

如何用Python快速爬取小姐姐的美图

最近有一个小伙伴拿一个python代码来问我为什么报错?

我仔细一看:是用来爬取某个网站妹子图的代码,结果发现那个网站已经404了,当然爬不到了。


其实很多初学者都喜欢拿网上的案例作为练习,但是我们的爬虫可能会对一些小网站造成负担。于是它们要么增加了反爬,要么干脆关站了,等几个月后面的初学者再拿博客上的代码去练习,自然困难重重。

授人以鱼不如授人以渔,所以今天只讲最核心的重点,不会过时。学会了可轻松爬取各种图片,不仅仅是妹子图哦。本文示例网站如下:

http://www.keaitupian.cn/meinv/13419.html

今天带大家用python获取网址中的小姐姐写真图。

获取下载链接

打开刚刚的网址,点击鼠标右键,检查,此时进入开发者模式。分析网页代码,可以轻松发现图片所在的标签。

标签内既包含了图片地址,也带有对应名称。新建标签页,复制对应图片url并打开,发现确实是图片的真实下载链接。

那我们可以利用python中的request正则构建获取函数。

def get_url(url):response = requests.get(url, headers=headers)html = response.texturls = re.findall(r'<img src="(.*?)"',html)return urls

测试一下

get_url('http://www.keaitupian.cn/meinv/13419.html')

可以看到,输出的列表包含了本页面所有的图片url。

这样我们就完成了爬取图片的第一步。

构建下载函数

第二步,构建下载函数:

def download_img(url,file_name):res = requests.get(url)img = open(file_name, 'wb')img.write(res.content)img.close()

简单解释一下,requests发起get请求拿到图片的信息。

open打开文件,以file_name(比如111.jpg)为文件名,wb代表以二进制覆盖写。

图片

  • res.text ==> 获取文本
  • res.content ==> 下载内容

这里我们下载图片使用res.content

批量下载

通过以上两步,我们就构造好了函数get_url()download_img(),下面就可以来调用函数去处理需求了。

urls = get_url('http://www.keaitupian.cn/meinv/13419.html')for url in urls:name = url.split('/')[-1] # 图片名字download_img(url,name)
print('下载完毕')

注:由于图片没有名字,就直接拿图片链接的后半部分来命名了,大家也可以换成数字等

这样就轻松爬取了网页中的所有高清大图。

后续提升

前面只给大家说了最核心的部分,即便再复杂的图片下载代码,也离不开这些核心基础。但大家在实际应用中,还是有不少提升的地方的。

1、文章一开始也提过,有一些网站反爬,要先解决反爬问题。

2、本文只演示了一个网页是如何爬取图片的,有一些小伙伴可能会想爬取全站的图片,这里就需要观察翻页效果以及url规律来构建网页链接了。

同时,不同网页对应的图片最好放在不同的文件夹了。

dir_name = re.findall('<h1 class="entry-title">(.*?)</h1>',html)[-1]
if not os.path.exists(dir_name):os.mkdir(dir_name)

爬取网页的对应标题作为文件名,先os判断同文件名的文件夹是否存在,如果不存在则自动创建!

3、还有一些读者朋友可能更感兴趣交互功能,那我们可以加一个input()实现一个小交互。

也可以使用一些GUI库来美化下载界面,以及pyinstaller 将代码打包成程序文件。

原创不易,点个赞支持一下吧👍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35041.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

CentOS8安装activeMQ

Active简介 ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件&#xff1b;由于ActiveMQ是一个纯Java程序&#xff0c;因此只需要操作系统支持Java虚拟机&#xff0c;ActiveMQ便可执行。 它解决了下面的问题&#xff1a; 做到系统解耦&#xff0c;当新的模块接进来时&am…...

[高维随机矩阵-2]

本系列主要按照《Introduction to random matrices theory and practice》进行&#xff0c;后续不再一一声明。每次使用新资料&#xff0c;都会在第一次使用时声明&#xff0c;后续也不再一一生明。 1. 本书目标读者是绝对的零基础人员。 2.随机矩阵理论random matirx theory…...

EasyExcel + Vue +Springboot 前后端联动,快捷导出Excel文件

预期效果&#xff1a;前后台联动&#xff0c;即点击“导出Excel”按钮后弹出下载框 导出效果&#xff1a; 1. 引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</version>…...

windows下python3.5+安装scrapy与创建项目

scrapy框架的安装与创建项目 scrapy安装&#xff1a; 相信第一次安装scrapy框架都会遇到各种安装不上的问题&#xff01;哈哈&#xff0c;别问我为啥知道&#xff01; 那我分享下我是如何安装scrapy框架的。 首先安装scrapy框架之前需要先安装几个依赖的库 依照顺序分别是 z…...

docker搭建LDAP统一用户认证

1. 安装LDAP docker run -dit \ -p 389:389 \ -v /data/ldap/ldap:/var/lib/ldap \ -v /data/ldap/slapd.d:/etc/ldap/slapd.d \ --name ldap \ --env LDAP_TLSfalse \ --env LDAP_ORGANISATION"pibigstar" \ --env LDAP_DOMAIN"pibigstar.com" \ --env LD…...

在 IntelliJ IDEA 中为自己设计的类库生成 JavaDoc

因为某个项目需要&#xff0c;为团队其他兄弟姐妹开发了一个 XML 分析处理器&#xff0c;并将其设计为一个类库&#xff0c;提供相应的 API 接口。为了方便大家的使用&#xff0c;需要生成对应的 JavaDoc 帮助文档&#xff0c;就像 JavaSE 标准库提供的 JavaDoc 那样。我的开发…...

奔腾(BNTN) 380功放+纽约至尊 套装家庭影院

奔腾(BNTN) 380功放+纽约至尊 套装家庭影院送美诗特TA20无线话筒1套+自拍神器杆! DTS解码数字功放 HDMI、光纤、同轴多组输入输出 USB、蓝牙播放功能...

SpringBoot集成支付宝支付(沙箱环境)

项目结构&#xff1a; 项目依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boo…...

(Java)获取视频中的每一帧图像

代码 /*** 根据读取到的视频文件&#xff0c;获取视频中的每一帧图片* param video 视频文件* http://192.168.0.107:9087/datago/detectsysfiles/204/createFile/frameFile/001/frameFile001.mp4* param picPath 图片的保存路径* E:/detectsysfiles/204/createFil…...

Java工作资料!同花顺java开发怎么样

前言 昨天&#xff0c;有个女孩子问我提高数据库查询性能有什么立竿见影的好方法&#xff1f; 这简直是一道送分题&#xff0c;我自豪且略带鄙夷的说&#xff0c;当然是加「索引」了。 她又不紧不慢的问&#xff0c;索引为什么就能提高查询性能。 这还用问&#xff0c;索引…...

js/python 抓取网页数据,导出execl

文章目录前言操作代码前言 js的方式&#xff1a;直接使用post获取所有的数据&#xff0c;因为是分页数据有total显示所有的数据&#xff0c;在请求的时候&#xff0c;就可以直接把每页的数据显示为total的值。没有太大的技术含量 python方式&#xff1a;直接遍历页码获取数据&…...

SpringCloud Alibaba实战(7:nacos注册中心管理微服务)

源码地址&#xff1a;https://gitee.com/fighter3/eshop-project.git 持续更新中…… 在上一节我们已经完成了Nacos Server的本地部署&#xff0c;这一节我们学习如何将Nacos作为注册中心&#xff0c;管理微服务。 1、注册中心简介 1.1、什么是注册中心 在微服务的体系里&am…...

xboot大神的libonnx环境搭建

1.get代码 git clone gitgitee.com:xboot/libonnx.git 2.安装依赖&#xff1a; sudo apt-get install libsdl2-dev sudo apt-get install libsdl2-gfx-dev 3.编译 4.结果 5.验证 进入examples/mnist&#xff0c;执行mnist. 结束&#xff01;...

Visual Studio

Visual Studio 2019 Enterprise&#xff08;企业版&#xff09;&#xff1a;BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Professional&#xff08;专业版&#xff09;&#xff1a;NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y...

数据结构与算法常用总结

数据结构1.常用数据结构及其原理1.1 数组1.2 链表1.3 队列1.4 栈1.5 哈希表1.6 二叉树2.常见数据结构面试题2.1数组和链表的区别2.2 排序算法2.3 栈结构与队列的区别1.常用数据结构及其原理 1.1 数组 每一个数组元素的位置由数字编号&#xff0c;称为下标或者索引(index)。大根…...

Linux中文件的分类

在Linux中&#xff0c;一切皆文件&#xff0c;Linux系统中文件的分类如下&#xff1a; 1、文本文件。文件组成主要是ASCII字符&#xff0c;文件作用是记录普通文件&#xff0c;如shell脚本文件、源文件、TXT文件等。 2、二进制文件。文件由二进制0、1组成&#xff0c;文件作用是…...

你花了多久弄明白架构设计?多个java应用同时访问数据库

01 分布式限流&#xff1a;NginxZooKeeper 1.1 分布式限流之Nginx 请解释一下什么是 Nginx? 请列举 x Nginx 的一些特性。 请列举 x Nginx 和 和 Apache 之间的不同点 请解释 x Nginx 如何处理 P HTTP 请求。 在 x Nginx 中&#xff0c;如何使用未定义的服务器名称来阻止…...

5852. 最小化目标值与所选元素的差 记忆化dfs,关键在于你怎么定义变量

目录解题思路代码解题思路 当时是个周赛题&#xff0c;试图利用爆搜解决的。。。。 显然不行&#xff0c;然后又听有人说是个背包QAQ dl都欺负我(╥╯^╰╥)嘤嘤嘤 不过了解了二维数组第一维放行数第二维放和&#xff0c;&#xff0c;&#xff0c;瞬间感觉记忆化搜索又可以…...

Spring面试题复习(一)

Spring面试题复习&#xff08;一&#xff09; 一、Spring是什么&#xff1f; Spring是一个轻量级的开发框架&#xff0c;常说的Spring框架&#xff0c;就是指Spring Framework&#xff0c;它是很多模块的集合&#xff0c;这些模块可以帮助我们开发人员简化开发&#xff0c;这…...

_____

sel,1SELECT * FROM table sel,2SELECT * FROM table WHERE name 强哥 sel,3SELECT * FROM table ORDER BY updateTime DESC hui,1会 paiban,1排班 beifen,1备份 gaihao,1改好 dai,1待 tu,1图 dangran,1当然 minxian,1明显 mingxian,1明显 suji,1苏稽 shizhan,1适展 gaihaole…...

真·杂项:资本论阅读笔记(随缘更新)

Chap1 商品与货币 商品的两个属性&#xff1a;使用价值和价值 商品是使用价值和价值的综合体。 使用价值&#xff1a;物品对人有用&#xff0c;价值分为质&#xff08;属性&#xff09;和量&#xff08;多少&#xff09; 交换价值&#xff1a;一种使用价值和另一种使用价值…...

mysql基础-常用sql语句

常用sql语句整理 在mysql中&#xff0c;常用sql语句为&#xff1a; 修改密码&#xff1a; alter user rootlocalhost identified with mysql_native_password BY 新密码; alter user rootlocalhost identified with mysql_native_password BY 123456;DDL&#xff08;Data Def…...

运行时数据区-虚拟机栈

文章目录谈谈你对虚拟机栈的理解栈帧什么是栈帧&#xff08;Stack Frame)当前栈帧栈帧的内部结构局部变量表Slot操作数栈Operand Stack动态链接方法返回地址一些附加信息虚方法和非虚方法方法的调用&#xff1a;虚方法表面试题方法中定义的局部变量是否线程安全&#xff1f;运行…...

双亲委派模型

从Java 虚拟机的角度来讲&#xff0c;只存在两种不同的类加载器&#xff1a;一种是启动类加载器&#xff08;BootstrapClassLoader&#xff09;&#xff0c;这个类加载器使用C语言实现&#xff0c;是虚拟机自身的一部分&#xff1b;另一种就是所有其他的类加载器&#xff0c;这…...

【报告分享】2021中国住宿业市场网络口碑报告-中国饭店协会众荟(附下载)

摘要:通过语义分析进一步了解酒店住宿业在不同服务维度的表现与变化趋势。点评是消费者对酒店服务最真实的反馈&#xff0c;不同服务的观点数&#xff0c;一方面反映消费者对该项服务的关注度&#xff0c;另一方面也反映酒店在营销中的 “有形展示” 是否做得到位&#xff0c;酒…...

Java学习笔记--13.网络编程

Java学习笔记–13 第十章 网络编程 目录Java学习笔记--13前言网络编程1.定义2.TCP通信(1).ServerSocket(2).Socket3.UDP通信(1).发送方(2).接收方前言 21世纪&#xff0c;走进了信息时代&#xff0c;各种各样的软件层出不穷&#xff0c;但是总离不开程序开发&#xff0c;离不…...

JavaScript-DOM、BOM对象

DOM对象 功能&#xff1a;控制html文档的内容 1、获取页面标签(元素)对象&#xff1a;Element 方法&#xff1a;document.getElementById(“id值”)&#xff1a;通过元素id获取元素对象、 2、操作Element对象&#xff1a; 1&#xff09;. 修改属性值&#xff1a; 明确获取的对…...

[高维随机矩阵-2]

本系列主要按照《Introduction to random matrices theory and practice》进行&#xff0c;后续不再一一声明。每次使用新资料&#xff0c;都会在第一次使用时声明&#xff0c;后续也不再一一生明。 1. 本书目标读者是绝对的零基础人员。 2.随机矩阵理论random matirx theory…...

目前最简多模态transformer:ViLT

facebook的文章&#xff0c;一句话概括&#xff1a;图像patch和文本embedding concat在一起过transformer&#xff0c;做图像-文本匹配任务 相比之前的多模态transformer&#xff0c;创新点在用Vit的patch方案作为visual embedding而不是先过CNN提取特征&#xff0c;或者更繁琐…...

Vue相关:

目录 1,说一下vue最大特点是什么或者说vue核心是什么 2,说一下vue常用基本指令有哪些 3,Vue常用的修饰符...

.pcapng文件格式和.pcap文件格式

原网页 本文为机翻后人工修饰了一些&#xff0c;总结一句话就是 .pcapng是.pcap的升级版 pcap捕获文件格式自计算机网络早期以来一直是通用的包捕获格式。 几乎所有捕获工具都支持pcap格式。 虽然供应商多年来已经创建了新的格式&#xff0c;但大多数工具支持转换为pcap格式。 …...

常见证书的编码格式和文件类型

一、证书标准 X.509 - 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准. 二、编码格式 PEM - Privacy Enhanced Mail,打开看文本格式,以"-----BEGIN…"开头, "-----END…"结尾,内容是BASE64编码. 查…...

XML文件格式解析

博客转载&#xff1a; https://www.cnblogs.com/stroll/p/7064503.html 一、xml基础详解&#xff1a; 1、概述&#xff1a; xml:即可扩展标记语言&#xff0c;xml是互联网数据传输的重要工具&#xff0c;它可以跨越互联网任何的平台&#xff0c;不受编程语言和操作系统的限制…...

互联网产品设计常用文档类型-BRD、MRD、PRD、FSD (

BRD Business Requirements Document&#xff0c;商业需求文档。这是产品声明周期中最早的问的文档&#xff0c;再早就应该是脑中的构思了&#xff0c;其内容涉及市场分析&#xff0c;销售策略&#xff0c;盈利预测等&#xff0c;通常是和老大们过的ppt&#xff0c;所以也就比较…...

Unknown custom element: <el-image>无法使用该组件,升级element-ui版本后项目报错

需求背景&#xff1a; 项目中需要使用图片点击放大&#xff0c;想要使用<el-image>组件&#xff0c;引入后报了下面的错&#xff0c;需要升级element版本&#xff0c;element-ui版本过低&#xff0c;没有该组件。 过程&#xff1a; cnpm i element-ui2.14.1 --save-dev…...

dw如何制作图片自动切换效果_如何在DREAMWEAVER中做出图片切换效果?

1、准备一组图片&#xff0c;最好大小一致&#xff0c;文件的命名相似&#xff0c;如&#xff1a;pic1.jpg、pic2.jpg、pic3.jpg&#xff1b;2、在网页中插入一个23的表格&#xff0c;表格的宽度与你的图片宽度一致&#xff1b;3、把表格的第一行的叁个单元格合并&#xff0c;并…...

【图文详解】python爬虫实战——5分钟做个图片自动下载器

python爬虫实战——图片自动下载器 之前介绍了那么多基本知识【Python爬虫】入门知识&#xff0c;大家也估计手痒了。想要实际做个小东西来看看&#xff0c;毕竟&#xff1a; talk is cheap show me the code! 这个小工程的代码都在github上&#xff0c;感兴趣的自己去下载&am…...

Spring Boot上传文件/图片图片显示

一、文章前言 1. 本文章主要讲述如何在spring boot下上传文件&#xff0c;尤其是上传图片并显示&#xff0c;例如用户注册的时候上传了头像&#xff0c;此时头像会加载在注册页面上面&#xff0c;在Spring MVC的时候&#xff0c;这样实现还好实现&#xff0c;但是到了Spring B…...

iOS小技能: 利用UIScrollView实现图片放大预览,并支持缩小。

文章目录 前言I 利用UIScrollView实现图片放大和缩小1.1 UIScrollView 的缩放原理1.2 使用方法1.3 代码实现II iOS小技能:查看大图浏览器(图片支持滑动切换)see also前言 需求背景:查看收单协议长图,由于图片内容比较多和长的话,需要利用放大图片进行查看。 I 利用UISc…...

html如何实现图片左右滑动效果,HTML+CSS入门 如何实现图片(image) 左右滑动

本篇教程介绍了HTMLCSS入门 如何实现图片(image) 左右滑动&#xff0c;希望阅读本篇文章以后大家有所收获&#xff0c;帮助大家HTMLCSS入门。<1、需求需要用简单动画的形式将一组图片进行展示&#xff0c;图片数量不固定2、效果如下:3、思路说到动画&#xff0c;首先想到使用…...

html-实现图片的预览功能

<!DOCTYPE html> <html lang"en"> <head><meta http-equiv"Content-Type" content"text/html;charsetutf-8" /><title>HelloWorld</title><style></style> </head> <body> <in...

微信小程序scroll-view做图片横向滚动

<scroll-view class"image-group" scroll-x"true"><image src"../../images/background_image12x.png"></image><image src"../../images/background_image12x.png"></image><image src"../.....

前端项目分析:我是如何做图片优化的(预加载、懒加载和延迟加载)

众所周知&#xff1a;前端页面上的图片是优化时最重要也是最令人头疼的部分&#xff0c;花费了几个月的时间才优化到令自己满意的一半程度&#xff0c;&#xff0c;&#xff0c;唉&#xff0c;一言难尽啊&#xff01; 在此将几种方法总结一下&#xff0c;希望能帮到不少人吧… …...

利用SAP Leonardo做图片近似查找 ——Python实现

写在前面&#xff1a; 本文内容来源于工作中实际的业务需要&#xff0c;但是刨除业务上下文以后&#xff0c;我觉得完全可以将实现的方法和技术提取出来&#xff0c;遂有了这篇博客&#xff0c;欢迎一起讨论。 在本文中&#xff0c;你将会看到如何用Python调用SAP Leonardo API…...

使用tomcat做图片服务器

使用tomcat做图片服务器的的目的 主要是因为项目小&#xff0c;暂时不需要大的解决方案&#xff0c;在就是避免频繁的更新导致的图片等数据文件的备份留存问题。 除了可以使用tomcat做图片服务器之外&#xff0c;同样也可以使用tomcat的虚拟路径解决问题。 几个步骤&#xf…...

厦门市会展局携手美创:以数据为核心的安全建设守护“云上会展”

新冠疫情影响下&#xff0c;会展业与云计算、大数据、物联网等数字技术加速融合&#xff0c;“云上会展”成为新趋势。然而风口之下&#xff0c;高价值的展会敏感数据无时不面临着被窃取、攻击的风险。因此&#xff0c;成熟配套的数据安全能力体系建设&#xff0c;也是会展业创…...

记录--用JS轻松实现一个录音、录像、录屏的工具库

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 前言 最近项目遇到一个要在网页上录音的需求&#xff0c;在一波搜索后&#xff0c;发现了 react-media-recorder 这个库。今天就跟大家一起研究一下这个库的源码吧&#xff0c;从 0 到 1 来实现一个 R…...

马士兵-郑金维—并发编程—2.并发编程的三大特性

一、原子性** 1.1 什么是并发编程的原子性 JMM(Java Memory Model)。不同的硬件和不同的操作系统在内存上的操作有一定差异的。Java为了解决相同代码在不同操作系统上出现的各种问题,用JMM屏蔽掉各种硬件和操作系统带来的差异。 让Java的并发编程可以做到跨平台。 JMM规…...

vue3.2 pinia的使用

目录 1 下载 2 引入 main.js 3 创建store --> common.js 4 vue3.2 项目中使用 5 监听state值 变化 1 下载 npm i pinia 2 引入 main.js import { createApp } from "vue"; import App from "./App.vue"; const app createApp(App);// 引入pini…...

网站favicon图标

文章目录1、制作favicon图标1.1、把图片切成png图片1.2、将png图标生成.ico图标1.3、HTML引入.ico图标1、制作favicon图标 1.1、把图片切成png图片 略 1.2、将png图标生成.ico图标 比特虫&#xff1a;http://www.bitbug.net 1.3、HTML引入.ico图标 <head> <link…...