python爬取动态页面图片_python动态网页爬取:爬取pexel上的图片
前言
同样的,我们在写一个爬虫前要明确自己想要爬取的东西是什么,明确下载目标数据在浏览器的操作如何
对于动态网页的爬取,在网页地址不变的情况下,我们首先要明确如何获取AJAX请求
首先我们看看这个网站pexel
打开页面后再Chrome浏览器中选择“更多工具”→“开发者工具”→“Network”→XHR
1、看到Name那一栏中,找到每一次鼠标下滑浏览器发出的请求,任意点开一个请求;
2、在右侧的Headers下拉
3、找到Query String Parameter这一栏,记住这里的数据
等下用于构造请求
接下来,在脑海里明确一下下载图片的步骤
我们首先点开一张图(要获得这个图的地址)→选择下载图片→获得一个.jpeg结尾或者.png结尾的网页,最后保存图片
查看网页源代码可以发现在每一次动态生成的页面中我们就可以直接获取图的下载地址
这时候我们可以考虑到,首先我们先获得页面的代码
然后通过正则表达式去搜索符合条件的图片
但是后面可能会有重复的地方,在获取的list中最后再用set筛选一下即可。
明确上述思路后,接下来我们开始构建爬虫
①初始化Headers☆
这一步非常重要,不构造headers会被禁止访问= =
headers初始化代码如下,用于将爬虫伪装成浏览器请求,而请求用于出发特定的AJAX内容
②构造动态AJAX请求
根据上述截图中保存的Query String Parameter参数,我们构造request请求的时候捎上Params内容
把获取的下载图片的link保存到一个list中
③元素的筛选
一开始调试程序的时候发现获取的link中还有以png形式结尾的link,这里需要再对list进行二次筛选,保留可以下载图片的link
最后还别忘了使用set把list中重复的元素删去哦
④最后对于保存了每一张图片的下载地址的list使用urllib.request.urlretrieve把图片保存到指定路径就可以啦
*pexel一开始还对每个图片的下载地址整了反爬虫机制,所以下载也要再构造一次headers模拟浏览器^_^
这一步可以单独写成一个函数,不过我贪方便就没这么写
最后贴两张运行结果图
控制台的输出:
下载到本地的壁纸
完整代码如下:
①为了调试程序中间加了一些输出语句
②如果要粘去直接用,记得通过打开页面查看query string parameter修改23行代码的seed内容!不然可能会爬不到东西
python爬取动态页面图片_python动态网页爬取:爬取pexel上的图片相关推荐
- 爬虫入门(三)——动态网页爬取:爬取pexel上的图片
Pexel上有大量精美的图片,没事总想看看有什么好看的自己保存到电脑里可能会很有用 但是一个一个保存当然太麻烦了 所以不如我们写个爬虫吧(๑•̀ㅂ•́)و✧ 一开始学习爬虫的时候希望爬取pexel上的 ...
- python爬虫快速下载图片_Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests...
Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象.近期我接触到了爬虫,被小小地震撼一下.总体的感觉就两个词--"强大"和"有趣".今天就跟大家分享 ...
- python自动爬取更新电影网站_Python爬虫之—微信实时爬取电影咨询
本文将介绍如何使用爬虫在微信对话中实现实时的电影咨询爬取功能,希望和大家一起来分享" 1. 撩妹起源 俗话说的好:少壮不撩妹,长大徒伤悲啊! 说的很对,但是在这个撩妹的时代,要想成功把到妹, ...
- python用for循环读取图片_python 使用for循环简单爬取图片(1)
现在的网站大多做了反爬处理,找一个能爬的网站还真不容易. 下面开始一步步实现: 1.简单爬录目图片 1 importurllib.request2 importre3 4 defgethtml(url ...
- python爬虫爬取58网站数据_python实战学习笔记:爬取58同城平板电脑数据
学习爬虫一周后独立完成的第一个作业项目:爬取58同城平板电脑数据. 1.首先确定URL,并抓取详情页中需要的信息 首先我们确定好需要爬取的网页URL是:http://zhuanzhuan.58.com ...
- python爬取腾讯新闻_Python 实现腾讯新闻抓取
原博文 2012-08-14 09:56 − 思路: 1.抓取腾讯新闻列表页面: http://news.qq.com/ 2.提取详细页面的url:http://news.qq.com/a/20120 ...
- python爬取b站评论_Python爬虫框架:scrapy抓取B站博人传评论数据
1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网址 ...
- python库和模块的区别_Python动态库模块的名称与文件名不同
在Python中,模块的名称通常与相应文件的名称相同,但是我遇到了与模块无关的问题,事实并非如此: 1 2 3 4 5 6me@host:/usr/lib/python2.7/dist-package ...
- python 操作word 替换字符串为图片_python实战===老司机奇技淫巧系列之字符转换成图片...
先放两张效果图: 还有这个: 是不是立马逼格满满~ 这里用到的是一个有趣的模块,叫wordcloud: *建议自行通过下载setup.py的方式安装,pip install 不一定能下载成功. 打开, ...
- python模拟点击后获取状态码_Python获取网页状态码
在网页爬取的时候,有时候需要判断下要爬取网页的网页HTTP状态码,然后再进行相关的工作. 1.网页HTTP状态码 HTTP状态码表示HTTP协议所返回的响应状态.具体参考:http://baike.b ...
最新文章
- meetup_如何使用标准库和Node.js构建Meetup Slack机器人
- 第19章 解释器模式(Interpreter Pattern)
- 浅析网站如何快速提升收录量?
- java文档注释生产api没有注释_一个神奇的没有springboot注释的api文档生成器---JApiDocs...
- Java 技术小图谱
- unity, 颜色随高度渐变shader
- 如何画圆柱_什么是最速降线?如何来验证一下呢?这里用SolidWorks来试一试
- asp.net 添加成功弹出个div提示_IOS12免越狱一键修改微信提示音
- freemarker取数
- JAVA-WEB-错误之-'OPTION SQL_SELECT_LIMIT=DEFAULT'
- 【转】 UDK 全版本安装文件下载
- 我的2017OKR - 年中回顾
- 【开发环境】运行Hitool出现“A Java Runtime Environment (JRE) or Java Development Kit (JDK)”错误处理
- JAVA编写猜拳游戏
- 微信推送封面尺寸_微信公众号封面图、正文配图尺寸如何?如何选择、制作?...
- 供应链金融及产业风控
- IDEA连接mysql后,schemas中无表格
- AHRS、IMU和INS对比
- 6.Striped64源码解析
- win7 文件夹背景。安装使用主题后,变为不透明的经典界面。Win8.1Win10文件夹背景补丁与教程
热门文章
- java连接mongo数据库,并执行db.runCommand命令
- 第十三题:中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
- [SSM框架]—Spring入门
- 友情链接php模板,自定义友情链接页面模板
- 安全进化的终极猜想— 以“AI之盾”对抗“AI之矛”
- openjdk1.8的下载与安装
- 小程序该怎么去做引流和变现呢
- log buffer及日志管理深入分析及性能调整(七)
- 社区购物、社区买菜小程序源码
- 测试分析——熟悉被测软件