python基础进阶之堆糖头像爬虫
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
想要学习Python?有问题得不到第一时间解决?来看看这里,满足你的需求,资料都已经上传至文件中,可以自行下载!还有海量最新2020python学习资料。
点击查看
一、前言:
随着QQ 微信的兴起,越来越多的人为了展示个性都喜欢收藏好看的头像但是面对海量的头像图片如果一个一个去下载的话那么会很麻烦 如何解决这个问题呢?
二、所用到得库
# 自动创建头像存储文件夹
import os
# 下载包
import urllib.request
# 网络请求包
import requests
# 网页选择器
from bs4 import BeautifulSoup
三、分享内容:
requests爬虫库
bs4网页选择器
urllib下载器
四、爬虫运行流程
1.模拟浏览器向服务器发送了一个http请求
2.当网站接收到请求后
3.返回数据给爬虫
五、代码流程:
1.创建存储文件夹
2.模拟浏览器
3.requests get请求 拿到网站页面数据
4.在页面中筛选我们想要的数据
5.下载数据
1.创建存储文件夹
# 1.
if not os.path.exists('./古风头像/'):os.mkdir('./古风头像/')
2.模拟浏览器
# 2. 在请求网站时 网站会校验当前请求是否为浏览器请求 如果不是 可能会造成禁止访问的问题
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
}
3.requests get请求 拿到网站页面数据
# 3. 请求函数 使用函数中的功能时 需要去调用函数
def get_images(url):images_html = requests.get(url, headers=headers).text# 我们想要的数据就在html代码中 所以需要在html代码中去筛选我们想要的数据'''需要两个参数1.想要筛选的页面变量: images_html2.html解析库: html代码和python没有关系 所以python没有办法直接去控制html使用html解析库将html代码转成python对象lxml:需要大家去下载 pip install lxml'''
4.在页面中筛选我们想要的数据
soup = BeautifulSoup(images_html, 'lxml')images_list = soup.find_all('div', class_='mbpho')for image in images_list:image_url = image.find('img')['src']image_id = image.find('img')['data-rootid']# print(image_url, image_id)# print(os.path.splitext(image_url)[-1])
5.下载数据 在windows系统中 如果想要下载保存一个文件 需要有两个东西
文件名称 文件后缀名
'''在下载中一定需要写上异常处理代码因为在网络请求中 可能因为网络问题导致爬虫代码崩溃 比如 断网'''try:urllib.request.urlretrieve(image_url, './古风头像/' + image_id + os.path.splitext(image_url)[-1])print('下载成功:', image_id)except Exception as e:print(e)url = 'https://www.duitang.com/search/?kw=%E5%8F%A4%E9%A3%8E%E5%A4%B4%E5%83%8F&type=feed'
# 调用函数
get_images(url)
python基础进阶之堆糖头像爬虫相关推荐
- python开发需要掌握哪些知识-Python基础进阶需要掌握哪些知识点?
Python基础进阶需要掌握哪些知识点?Python将是每个程序员的标配,有编程基础再掌握Python语言对于日后的升职加薪更有利.Python语言简洁利于理解,语法上相对容易能够让开发者更专注于业务 ...
- Python训练营—Tesk3—Python基础进阶—从函数到高级魔方方法
Python基础进阶--从函数到高级魔方方法 目录 Python基础进阶--从函数到高级魔方方法 一.函数 1.函数的定义 2.函数的调用 3.函数参数 4.变量作用域 ...
- Python基础+进阶(万字总结,基础案例+执行结果)
Python基础篇 第一章:基础语法 输出相关: 基本输出案例 print("HelloWorld")# 执行结果: ''' HelloWorld ''' 转义字符 # 转义字符& ...
- python将姓王的都改成老王_老王Python基础+进阶+项目篇(高清无密)
老王Python教程 基础篇 基础篇1-福利课python先入为主上 基础篇2-福利课-python先入为主下篇 基础篇3-虚拟机安装xubuntu开发环境 基础篇4-linux基本命令以及开发环境 ...
- Python基础进阶
Python第二周笔记 2019年3月25日 文章目录 Python第二周笔记 一.函数进阶 MAP Filter Reduce 二.模块 三. 文件方法 **内建函数** Time 模块 read/ ...
- Python基础知识回顾及scrapy框架爬虫基础
1.函数 函数参数:必须 默认 关键 可变 函数种类:外部 内部 匿名 lambda 装饰函数:@语法糖 函数总是要返回的 ,若没有return,None总是被返回 2.面向对象: 对象:已存在, ...
- Python基础进阶(前言)
前言 你好,世界!作为一个年轻的程序员和90年代后期的黑客爱好者,我经常认真阅读最新一期的2600:黑客季刊.有一天,我终于鼓起勇气参加了杂志社在我所在城市举办的每月一次的聚会,惊叹于其他人看来是多么 ...
- 阿里云天池 Python训练营Task3: Python基础进阶:从函数到高级魔法方法 学习笔记
本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...
- 最新java初级高级,python基础进阶,机器学习视频资料
我是在校口碑,现在整理了一些编程,java,python,框架,大数据资料,适用于小白和大牛!! 转载于:https://blog.51cto.com/13135855/2342878
最新文章
- 高并发下的接口幂等性解决方案
- R语言负二项分布函数Negative Binomial Distribution(dnbinom, pnbinom, qnbinom rnbinom )实战
- Adaboost通俗易懂入门教程
- B站资源推荐:复旦大学机器学习、深度学习公开课,附PDF课件下载
- 使用小型变压器的线圈设计实验磁标初步实验
- 【c_prime_plus】第十七章笔记
- 百度PRNN:增强GPU伸缩性,RNN训练最高提速30倍(源码下载)
- vue双向数据绑定原理分析--Mr.Ember
- CF 546E(最大流
- 写模拟挂用什么工具?
- 小白学JAVA,与你们感同身受,JAVA---day5:关于多态的理解和分析。鲁迅的一句话:总之岁月漫长,然而值得等待。
- centos7 安装java 8_centos7 在linux系统进行安装jdk1.8过程
- php绕过验证,PHP-Nuke绕过识别码验证漏洞
- 计算机图形学资源收集04
- c语言必考100题解析,C语言必考100题
- 项目经理的五大核心技能
- WIN32汇编 状态栏的使用
- c语言例题22:日期计算
- Java实现万年历【升级版】
- 人生的意义,在于不断地超越自己