今天咱们要爬取花瓣网 https://huaban.com/
设计师寻找灵感的天堂!有海量的图片素材可以下载,是一个优质图片灵感库

这次我们用 requests 登录花瓣网,爬取页面,再用正则与json提取有用信息,最后把获取的图片信息 保存到本地

一 、用到技术

  • python 基础
  • requests 登录页面获取session用户会话,下载图片
  • 正则表达式 提取页面的有用信息
  • json解析页面中的图片

二、 目标页面

https://huaban.com/search/?q=女神&category=photography

三、结果

四、安装 必要的库

  • win+R 打开运行
  • 输出cmd 进入控制台
  • 分别安装requests
pip install  requests
1

五、分析页面

  1. 页面规律
    我们单击分页按钮,拿到页面最后一个参数的规律
    第一页:https://huaban.com/search/?q=女神&category=photography&page=1
    第二页:https://huaban.com/search/?q=女神&category=photography&page=2

2.登录

通过Fiddler我们查看到登录请求的地址和参数

# 地址
https://huaban.com/auth/
# 参数"email": "******","password": "*****","_ref":"frame"
123456

我决定使用requests的session()功能来获取用户登录后的会话session信息

3. 页面信息

我们通过右键查看源代码发现数据是保存在javascript里面的我们准备用正则表达式提取页面信息

六、全部代码

#-*- coding:utf-8 -*-
import requests
import re
import json
# 导入 requests  re正则 json'''
login
登录花瓣 获取session
'''
def login():login_url = 'https://huaban.com/auth/'# 登录地址headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0","Accept": "application / json","Content-type": "application/x-www-form-urlencoded; charset=utf-8","Referer": "https://huaban.com/",}# 请求头信息session = requests.session()#sesson 会话login_data = {"email": "zengmumu%40126.com","password": "zmm123","_ref":"frame"}response = session.post(login_url, data=login_data, headers=headers,verify=False)# 登录页面getPic(session,5)# 获取图片,前5页'''
getPic
解析页面中的图片地址
session 会话信息
num     最大是页数
'''
def getPic(session,num):for i in range(1,num+1):response = session.get("https://huaban.com/search/?q=%E5%A5%B3%E7%A5%9E&category=photography&page="+str(i))# 获取页面信息("美女"文字编码后的结果是"%E5%A5%B3%E7%A5%9E" )data = re.search('app\.page\[\"pins\"\] =(.*);\napp.page\[\"page\"\]', response.text, re.M | re.I | re.S)# 提取到当前页面所在的所有图片信息data = json.loads(data.group(1))# 转换字符串为列表for item in data:url = "https://hbimg.huabanimg.com/" + item["file"]["key"]# 拼接图片地址index = item["file"]["type"].rfind("/")type = "."+item["file"]["type"][index + 1:]# 获取图片的类型file_name = item["raw_text"]# 获取图片的中文名download_img(url, file_name,type)# 下载图片'''
下载图片
url        图片的地址
name   图片的中文名
type     图片的类型
'''
def download_img(url,name,type):response = requests.get(url,verify=False)# 使用requests 下载图片index = url.rfind('/')file_name = name+url[index + 1:]+type# 获取图片的hash值print("下载图片:" + file_name)# 打印图片名称save_name = "./photo/" + file_name# 图片保存的地址(注意photo要自己建一个,与当前.py文件同一个文件夹)with open(save_name, "wb") as f:f.write(response.content)# 写入图片到本地
'''
定义主函数
'''
def main():login()# 如果到模块的名字是__main__ 执行main主函数
if __name__ == '__main__':main()

是不是很简单,注释都在代码上,如有疑问欢迎加入交流解答基地!⬅点他

教新手小白如何通过五分钟学会用Python爬取女神照片!相关推荐

  1. python爬取天气预报_分分钟学会用Python爬取天气预报

    ###第一步: 请确保你已经安装了Requests和Beautifulsoup4的库,否则你可以打开CMD(命令提示符)然后输入 pip3 install requests pip3 install ...

  2. 分分钟学会用Python爬取天气预报

    我假设你已经符合上述的标准,现在我们就来开始第一个爬虫的网站,我们首先挑选一个下手:附上URL:中国天气网(http://www.weather.com.cn/weather1d/101280101. ...

  3. 手把手教你Python爬取女神套图

    疲惫的生活里总要有些温柔梦想吧 目标URL:http://www.win4000.com/meinvtag4_1.html 爬取美桌网某个标签下的美女壁纸,点进详情页可以发现,里面是一组套图 一.网页 ...

  4. 福利来了!手把手教你Python爬取女神套图

    疲惫的生活里总要有些温柔梦想吧 目标URL:http://www.win4000.com/meinvtag4_1.html 爬取美桌网某个标签下的美女壁纸,点进详情页可以发现,里面是一组套图 一.网页 ...

  5. 福利!手把手教你Python爬取女神套图

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者:叶庭云 来源:凹凸数据 作者:叶庭云 CSDN ...

  6. 五分钟学会企业的OpenStack(T版)——简介及安装方式

    五分钟学会企业的OpenStack(T版)--简介及安装方式 前言 一.OpenStack简介 二.OpenStack安装方式(T版)系列 前言 花了几天写完了OpenStack(T版)的系列文章,希 ...

  7. 五分钟学会用Simulink模型生成HDL代码

    五分钟学会用Simulink模型生成HDL代码 1 核心步骤 2 视频展示 3 生成HDL代码的注意事项 3.1 HDL支持的库和模块 3.2 设置simulink模型为可生成 hdl 的模式 3.3 ...

  8. 老滚5初始化python失败_五分钟学会怎么用python做一个简单的贪吃蛇

    Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发.我们今天将利用它来制作一款大家基本都玩过的小游戏--贪吃蛇. 一.需要导入的包 import pygame ...

  9. python 开发安卓应用商店_用Python爬取各Android市场应用下载量(3分钟学会)

    就是这么简单! 文章目录 前言 设计一个函数 构造要爬取的网址 确定要爬取的内容的位置 构建输入和调用部分 程序完整代码 0 前言 有时候,总有一些重复又琐碎的工作,却不得不做-- 一个个统计,也不是 ...

  10. 手机版python3h如何自制游戏_Python 飞机大战|10 分钟学会用 python 写游戏

    Python 飞机大战|10 分钟学会用 python 写游戏 2018 年 python 语言大火, 这把火看趋势已然延续到了 2019 年! 除了在科学计算领域 python 有用武之地之外, 在 ...

最新文章

  1. 打发无聊的办法(2005-5-31)
  2. IEEE:2021年的机遇、挑战以及关键的科技趋势
  3. es6 数组找最大值_自学Java笔记_day04_第四章 数组
  4. Android input keyevent
  5. Spring Boot swagger之前后端分离
  6. java寻路算法_具有指定距离/节点数的寻路算法
  7. 找图点击-找图自动点击全能模拟王软件
  8. 条码打印软件如何添加新字体
  9. SM3算法对大文件做摘要
  10. raft-rs 示例程序源码解读
  11. 从模板部署虚拟机和自定义虚拟机规范
  12. Analyze静态分析所出现的问题总结
  13. IEEE 投稿参考文献格式bib
  14. Halcon区域特征
  15. 分享一个:批量下载个性化桌面壁纸和各种唯美图片的方法
  16. ESD防护选型思路(一)
  17. 【目标检测】YOLOv5-PyQT可视化例程开发
  18. Unity AzureKinect Ar贴纸
  19. i511320h和锐龙r75800h性能 r7 5800h和 i5 11320h 评测
  20. python入门(五)实现统计《哈姆雷特》最多单词和《三国演义》人物出场次数

热门文章

  1. java vm 参数及设置(转载)
  2. linux下用c语言写吃金豆,吃金豆pacmanTC版
  3. 国开计算机网络作业,国家开放大学 计算机网络 形考作业1 答案
  4. CoreOS裸机安装步骤(亲测)
  5. 中标麒麟高级服务器操作系统V7.6升级安装GCC-8.5.0编译工具
  6. 《数据库实验》实验五:数据库编程
  7. c语言心算抢答系统,心算抢答系统2.doc
  8. 全屋wifi测试软件,全屋WIFI评测
  9. 三对角阵的一维数组表示
  10. MySql查询之单表查询 --附练习素材