17-用python爬取下载女神照片
今天咱们要爬取花瓣网 https://huaban.com/
设计师寻找灵感的天堂!有海量的图片素材可以下载,是一个优质图片灵感库
这次我们用 requests
登录花瓣网,爬取页面,再用正则与json
提取有用信息,最后把获取的图片信息 保存到本地
一 、用到技术
python 基础
requests
登录页面获取session用户会话,下载图片正则表达式
提取页面的有用信息json
解析页面中的图片
二、 目标页面
https://huaban.com/search/?q=女神&category=photography
三、结果
四、安装 必要的库
- win+R 打开运行
- 输出cmd 进入控制台
- 分别安装
requests
pip install requests
五、分析页面
- 页面规律
我们单击分页按钮,拿到页面最后一个参数的规律
第一页: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"
我决定使用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()
在线练习:https://www.520mg.com/it
IT 入门 感谢关注
17-用python爬取下载女神照片相关推荐
- python爬取下载m3u8加密视频,原来这么简单!
1.前言 爬取视频的时候发现,现在的视频都是经过加密(m3u8),不再是mp4或者avi链接直接在网页显示,都是经过加密形成ts文件分段进行播放. 今天就教大家如果通过python爬取下载m3u8加密 ...
- 用python爬取下载b站视频
B站之所以火,是因为趣味与知识并存.正如一句"你在B站看番,我在B站学习",B站还是有一些质量比较好的学习视频.当你在B站上看到喜欢的视频想保存下来时,怎么办呢? 转入正题,本篇推 ...
- python爬取单个网页照片!
所爬取的网页链接, 本例为:http://college.koolearn.com/upload/school/kaoyan/10359.jpg 所爬取的网页链接,结尾必须是.jpg才可以得到一个照片 ...
- python爬取下载动态图片网站
这次我们来爬取一个图片网站 unsplash.com,为什么要选择这个网站呢?因为这个网站的所有图片都是js动态请求生成的,所以说一般的爬取肯定是不行的啦 ~ 一.工具 这次爬取我们需要借助一款工具代 ...
- python 爬取电子书_看kindle网站电子书用Python爬取下载
一个下载看kindle(kankindle.com)的所有电子书的python脚本,程序会自动下载首页部分13页的所有电子书,下载到ebook目录下,程序会检测是否下载过. #!/usr/bin/en ...
- 大神用Python 爬取了的心中女神的微信,是如何做到的?
Python爬虫技术越来越火了,不仅可以爬微博.美女qq空间.还可以爬取微信工资号文章,还可以爬取微信,.如果可以用Python 爬取心中女神的微信,那就太棒了.昨晚偶然了解到Python里的itch ...
- python——图片爬虫:爬取爱女神网站(www.znzhi.net)上的妹子图 进阶篇
在上一篇博客中:python--图片爬虫:爬取爱女神网站(www.znzhi.net)上的妹子图 基础篇 我讲解了图片爬虫的基本步骤,并实现了爬虫代码 在本篇中,我将带领大家对基础篇中的代码进行改善, ...
- 利用Python爬取一加云服务的所有照片(原图)
利用Python爬取一加云服务的所有照片(原图) 一.使用工具 二.cookies和headers提取 三.Python源代码下载 一.使用工具 1.Python3.8(理论上Python3都可使用) ...
- python自动搜索爬取下载文件-python批量爬取下载抖音视频
本文实例为大家分享了python批量爬取下载抖音视频的具体代码,供大家参考,具体内容如下 import os import requests import re import sys import a ...
最新文章
- iOS开发--线程通信
- linux 字符串截取_第13篇:Linux防火墙的日志基本审计
- 设置checkbox的只读
- 5.Ray-Handler之ToReadHandler编写
- TreeSet简单介绍与使用方法
- RedHat Linux 5企业版安装telnet
- Windows 10如何自定义任务栏上的程序
- 【珍藏级】商业杂志图表的经典用色
- R实战 | 聚类分析
- java 酒店系统_Java实现酒店客房管理系统
- 基因测序技术发展历史以及一、二、三代测序技术原理及应用
- java 子网掩码 位数_java实现子网掩码转换为网络标识位 | 学步园
- [BJWC2008]王之财宝
- 三角函数中的和差化积公式编辑方法
- 阿里云Ubuntu 18.04安装图形界面
- java + jfreechart + itextpdf创建折线图饼图并导出为pdf
- SAP CO01(创建生产订单)/MIGO(发货投料)前台操作
- word list 1
- qss 画框_PyQt5系列教程(77):QSS入门2
- 巧用千寻位置GNSS软件|如何快速查验精度