python初始化函数_当你学会了Python爬虫,网上的图片素材就免费了

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

加入作者的python学习圈子:1156465813 即可免费获取,资料全在群文件里。资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等

一、项目背景

在素材网想找到合适图片需要一页一页往下翻,现在学会python就可以用程序把所有图片保存下来,慢慢挑选合适的图片。

二、项目目标

1、根据给定的网址获取网页源代码。

2、利用正则表达式把源代码中的图片地址过滤出来。

3、过滤出来的图片地址下载素材图片。

三、涉及的库和网站

1、网址如下:

https://www.51miz.com/

2、涉及的库:requestslxml

四、项目分析

首先需要解决如何对下一页的网址进行请求的问题。可以点击下一页的按钮,观察到网站的变化分别如下所示:

https://www.51miz.com/so-sucai/1789243.html
https://www.51miz.com/so-sucai/1789243/p_2/
https://www.51miz.com/so-sucai/1789243/p_3/

我们可以发现图片页数是1789243/p{},p{}花括号数字表示图片哪一页。

五、项目实施

1、打开觅知网,在搜索中输入你想要的图片素材(以鼠年素材图片为例)。

170fafce5b30640c2298450e6140e090.png

2、根据上一步对网址的分析,首先我们定义一个类叫做ImageSpider,类里面定义初始化函数、发送请求获取响应数据函数、解析函数、主函数。首先初始化函数,准备url地址和headers,代码如下图所示。

cf99b72049b09d165d25eb53cb6ad1ea.png

3、发送请求获取相应数据函数。

b48be7942073e4300f5fbd16d1c39b67.png

4、解析数据,使用xpath获取二级页面链接,最后把图片存储在文件夹中。使用谷歌浏览器选择开发者工具或直接按F12,发现我们需要的图片src是在img标签下的,于是用Python的requests提取该组件。

6f3549f1ab2a0ebd07231403abd243cc.png

131ee0d5ccb1c5e33f0b80e93bcef998.png

5、主函数,代码如下图所示。

2bfec2dfaf3ce6d9a0b0ac7824b06f4b.png

六、效果展示

1、运行程序,在控制台输入你要爬取的页数,如下图所示。

9f3d641f0417c81d95a7360cac009834.png

2、在本地可以看到效果图,如下图所示。

bdc5393b71e3223d3cf3c4434f84a098.png

最后

如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,我来分享一波2020最新的Python教程。加入我的学习圈子:1156465813,就可以领取学习资料

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三周作业(一)单元测试

下载vs2015安装包,打开进行安装. 选择颜色 安装完成,需要登录 启动vs 单元测试 1.打开vs界面。 2.新建项目。选择Visual C# 创建类库。 3.点击确定后,进入代码编辑界面。 4.根据书中代码,写入程序,并进行测试。 转载于…

React-Native-lesson

React-Native-lesson 一、React-Native入门指南 lesson2: 认识代码结构lesson4: 学会React-Native布局(一)lesson6: UI组件lesson8: 自己动手写组件 https://github.com/vczero/toilet React Native完全开发的独立App,支持ES6语法&#xff0c…

1、如何进行字符串常量中的字符定位_Java String:字符串常量池,我相信会有很多朋友不很理解这部分...

作为最基础的引用数据类型,Java 设计者为 String 提供了字符串常量池以提高其性能,那么字符串常量池的具体原理是什么,我们带着以下三个问题,去理解字符串常量池:字符串常量池的设计意图是什么?字符串常量池…

Egret中使用P2物理引擎

游戏中的对象按照物理规律移动,体现重力、引力、反作用力、加速度等物体特性,实现自由落体、摇摆运动、抛物线运动,以及物理碰撞现象的模拟。用于模拟物理碰撞、物理运动的引擎称为物理引擎。 来自瑞典斯德哥尔摩大学的Stefan Hedman基于Java…

react项目_如何从零开始创建React项目(三种方式)

在开发React项目前最关键的当然是项目的创建,现在的前端工程化使得前端项目的创建也变得越来越复杂,在这里介绍三种从零开始创建React项目的方式,分别是在浏览器中直接引入、使用官方脚手架create-react-app、使用Webpack创建。浏览器中通过标…

利用JSONP解决AJAX跨域问题的原理与jQuery解决方案

写在前面 跨域的解决方案有多种,其中最常见的是使用同一服务器下的代理来获取远端数据,再通过ajax进行读取,而在这期间经过了两次请求过程,使得获取数据的效率大大降低,这篇文章蓝飞就为大家介绍一下解决跨域问题的一种…

江西理工大学南昌校区cool code竞赛

这次比赛原本就是来打酱油的,想做个签到题就走!一开始不知道1002是签到题,一直死磕1001,WA了四发过了,回头一看Rank,三十名,我靠!看了1001的AC率,在我AC之前只有一个人AC…

mysql 枚举_详解MySQL数据类型之枚举类型ENUM的用法

本节主要内容:MySQL数据类型之枚举类型ENUMMySQL数据库提供针对字符串存储的一种特殊数据类型:枚举类型ENUM,这种数据类型可以给予我们更多提高性能、降低存储容量和降低程序代码理解的技巧,前面介绍了首先介绍了四种数据类型的特…

# 异运算_小学数学运算三要点:定律、法则与顺序(解析)

很多孩子的数学不好,尤其是女孩子。家长往往认定为数学不好就是孩子不擅长,能力差。其实未必,有的孩子数学不好的原因并不在于智商,而是没有理解到数学的方法与逻辑,比如小学的运算中,很多孩子并没有了解到…

如何实现一个教师与学生教学辅助平台?

在软件工程的学习过程中,我们要完成一个团体项目,关于个人教学辅助系统,对于这个,还有太多要学。对于如何实现其中的功能,我们会利用到html,css等语言来编写网页前端,同样也会用到数据库的知识。…

证明创建runnable实例和普通类时间一样长

import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;//证明创建runnable实例和普通类时间一样长public class Test002 { private Concurre…

mysql数据库维护_维护MySQL数据库表

在本教程中,我们将向您介绍一些非常有用的语句,使您可以在MySQL中维护数据库表。MySQL提供了几个有用的语句,可以有效地维护数据库表。 这些语句使您能够分析,优化,检查和修复数据库表。分析表语句MySQL查询优化器是My…

node-glob 正则表达式

https://github.com/isaacs/node-glob转载于:https://www.cnblogs.com/chris-oil/p/6507368.html

机器学习笔记—再谈广义线性模型

前文从线性回归和 Logistic 回归引出广义线性回归的概念,很多人还是很困惑,不知道为什么突然来个广义线性回归,有什么用?只要知道连续值预测就用线性回归、离散值预测就用 Logistic 回归不就行了?还有一些概念之间的关…

python连接access数据库odbc_对Python通过pypyodbc访问Access数据库的方法详解

看书上通过ODBC访问数据库的案例,想实践一下在Python 3.6.1中实现access2003数据库的链接,但是在导入odbc模块的时候出现了问题,后来查了一些资料就尝试着使用pypyodbc,最后成功了。操作步骤:①安装pypyodbc目前Python…

mysql异机备份

xx.xx..4.43----xx.xx..4.51 1、配置client通过密钥来连接server 43机器上: /root/.ssh 目录下执行 ssh-keygen -t rsa ls /root/.ssh会发现在/root/.ssh下生成一对密钥id_dsa和id_dsa.pub,将生成的公钥id_dsa.pub拷贝到server的/root/.ssh目录下&#…

周末想找个地方敲代码_观看我们的代码游戏,全周末直播

周末想找个地方敲代码by freeCodeCamp通过freeCodeCamp 观看我们的代码游戏,全周末直播 (Watch us Code Games Live All Weekend) Note: this was originally published on our now-defunct blog on July 15, 2015.注意:该文章最初于2015年7月15日发布在…

5.7和5.6的mysql_mysql5.6和5.7的区别

展开全部MySQL 5.7 已经开发两年了。相比 MySQL 5.6,有特别多的改进。团队主要关注速度,性能据报告是比之前62616964757a686964616fe4b893e5b19e31333365643661版本提升了 2 至 3 倍。新特性列表,主要改进:提升 MySQL 安全性改进了…

01:数制转换

01:数制转换 查看提交统计提问总时间限制: 1000ms内存限制: 65536kB描述求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。不同进制的表示符号为(0,1,...&am…

局域网只能看到一部分电脑_win10 网上邻居看不到其它电脑、共享不了文件

最近电脑遇到了局域网文件共享的问题,Win 10 系统在网络和共享中心里无法看到其他电脑,只能看到本机。确认共享已经打开后,通过查找最终解决。下面是解决流程。1.进入:控制面板 – 网络和共享中心 – 更改高级共享设置&#xff0c…