pyquery获取不到网页完整源代码_python动态网页爬取:爬取pexel上的图片

前言

同样的,我们在写一个爬虫前要明确自己想要爬取的东西是什么,明确下载目标数据在浏览器的操作如何

对于动态网页的爬取,在网页地址不变的情况下,我们首先要明确如何获取AJAX请求

首先我们看看这个网站pexel

打开页面后再Chrome浏览器中选择“更多工具”→“开发者工具”→“Network”→XHR

1、看到Name那一栏中,找到每一次鼠标下滑浏览器发出的请求,任意点开一个请求;

2、在右侧的Headers下拉

3、找到Query String Parameter这一栏,记住这里的数据

等下用于构造请求

460bafeda20d9dfc732649a1eed709c4.png

接下来,在脑海里明确一下下载图片的步骤

我们首先点开一张图(要获得这个图的地址)→选择下载图片→获得一个.jpeg结尾或者.png结尾的网页,最后保存图片

查看网页源代码可以发现在每一次动态生成的页面中我们就可以直接获取图的下载地址

找到它,发现前缀是"https://images.pexels.com/photos/"+jpeg或者png

afd8198d4e741762f2c61aae73221ba1.png

这时候我们可以考虑到,首先我们先获得页面的代码

然后通过正则表达式去搜索符合条件的图片

但是后面可能会有重复的地方,在获取的list中最后再用set筛选一下即可。

明确上述思路后,接下来我们开始构建爬虫

①初始化Headers☆

这一步非常重要,不构造headers会被禁止访问= =

headers初始化代码如下,用于将爬虫伪装成浏览器请求,而请求用于出发特定的AJAX内容

4edd960f1bdec6cc22b55d931303154a.png

②构造动态AJAX请求

根据上述截图中保存的Query String Parameter参数,我们构造request请求的时候捎上Params内容

把获取的下载图片的link保存到一个list中

6a4b92bbe60ae5952c88511d91d527c8.png

③元素的筛选

一开始调试程序的时候发现获取的link中还有以png形式结尾的link,这里需要再对list进行二次筛选,保留可以下载图片的link

最后还别忘了使用set把list中重复的元素删去哦

9ed4f3be88d39323bdfbd5096ea94e60.png

④最后对于保存了每一张图片的下载地址的list使用urllib.request.urlretrieve把图片保存到指定路径就可以啦

*pexel一开始还对每个图片的下载地址整了反爬虫机制,所以下载也要再构造一次headers模拟浏览器^_^

这一步可以单独写成一个函数,不过我贪方便就没这么写

7833c3de4aa1edd92dc6ce4d81363850.png

最后贴两张运行结果图

控制台的输出:

034f20256fa939d4f268290955c5528f.png

下载到本地的壁纸

7d99dba0ce51feedbed79267a2aa3196.png

完整代码如下:

①为了调试程序中间加了一些输出语句

②如果要粘去直接用,记得通过打开页面查看query string parameter修改23行代码的seed内容!不然可能会爬不到东西

6ad9cb34939ee19faeafa10bdd4bfd40.png

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

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

相关文章

W ndows找不到explorer,windows找不到explorer.exe的处理教程

很多网友入手windows过程里找不到explorer.exe,很是烦恼,为了帮助大家排忧解难,这里小编就分享了windows找不到explorer.exe的处理教程,希望可以帮助到大家。windows找不到explorer.exe的处理教程1、按winr打开运行窗口&#xff0…

极光推送 android 最新,Android——快速集成极光推送-Go语言中文社区

集成极光推送1,首先肯定是注册,添加应用2,开始自动集成比手动集成简单第一步 在 build.gradledefaultConfig {multiDexEnabledtrueapplicationId rootProject.ext.cfg.applicationIdminSdkVersionrootProject.ext.cfg.minSdkVersiontargetSdk…

华为云服务怎么弄金卡会员_万科牵手华为终端云服务,共建松山湖智慧商圈

12月18日,坐落在东莞松山湖南华为旁的44000㎡的开放式商业mall——滨湖万科里正式启幕。现场华为终端云服务部还与万科南方区域商业事业部签署了战略合作协议,开启共建智慧商圈的新版图。值得一提的是,这也是华为终端云服务与万科在商业板块的…

cad2014打开文件崩溃_CAD玩的再牛,崩溃了咋办?

导读前几天,一入职新人晚上加班画完的图纸在最后一刻CAD崩溃了!好在最后在临时保存文件夹中找到了完整的图纸。这才免于通宵。CAD崩溃是我们画图中经常遇到的问题。对于CAD崩溃后的处理,相信老司机都已经游刃有余。但也有防不胜防的时候&…

android 弹窗ui,Android 弹出窗口与对话框 UI设计

左图: Android 自带的日期选择弹窗; 右图: Android 自带的时间选择弹窗.左图: Android 日历中的重复选择; 右图: Chrome 中的打印.干净简洁的布局与有趣儿又引人注目的交互让操作变得轻松而愉快, 尤其是那在时间选择器中出现的双环.同样的, 也有很多人试图在自己的应用中给他们…

vim反向删除_VIM之操纵缓冲区列表

引子昨天遇到了一个奇怪的问题,一条在Sublime里面看着十分正常的SQL语句,执行了也是正常的,导出的Insert语句也是看着没毛病的,但是在查询出来,传递到下游的时候,说多了一个乱码。WTF,然后就开始…

卸载 windows_Windows 10可能很快会自动卸载有问题的Windows更新

看起来微软已经悄悄地向Windows 10添加了一项新功能,该功能将允许操作系统自动删除导致问题的任何有问题的Windows更新。这是一个好消息,因为Windows 10最近有一些有问题的更新,其中一些阻止了Windows 10的加载。根据微软刚刚发布的一份新支持…

android /data/system/dropbox,Android导出dropbox日志

文章内容已重新排版:Android导出dropbox日志,请到该链接浏览,谢谢支持。大项目中出现anr几乎是必然事件,这里我就不再去赘述怎么分析anr日志了。但是作为分析anr重要依据的必然离不开dropbox日志。问题来了,dropbox文件…

android蓝牙串口 hc06,Android手机通过蓝牙模块HC-06连接Arduino串口输出

通过手机进行通信是可以实现很多遥控功能,虽然距离是比较短,一般是10米,但对于我这种新手做测试,比起买一个几百块的多通道遥控器成本要低很多。实验目的:用Android实现蓝牙连接通过Arduino串口输出信息这次使用的是蓝…

esrgan_港中文-商汤联合实验室:ECCV2018 PIRM-SR 超分辨率比赛冠军:ESRGAN(已开源)...

Summary:中科院和京东AI研究院提出:改进SRN人脸检测算法,目前业界最强!Author:AmusiDate:2019-02-09微信公众号:CVer原文链接:香港中文大学-商汤联合实验室:ECCV2018 PIR…

android中如何新建一个activity,《Android Activity》活动的介绍和创建

Activity 是什么Android 有四大组件:Activity、Service、Broadcast Receiver 和 Content Provider。Activity,活动,即用来承载用户界面的容器,Android 四大组件之一。我们在 APP 里面看到的页面就需要一个 Activity,页…

android qq红点,Android高仿QQ小红点功能

先给大家展示下效果图:绘制贝塞尔曲线:主要是当在一定范围内拖拽时算出固定圆和拖拽圆的外切直线以及对应的切点,就可以通过path.quadTo()来绘制二阶贝塞尔曲线了~整体思路:1、当小红点静止时,什么都不做,只…

android1.6,令人遗憾的Android 1.6系统_戴尔 Mini5(Streak)_手机其它OS-中关村在线

令人遗憾的Android 1.6系统虽然Dell Streak上周五刚刚在美国地区上市,但实际上这款产品的开发时间已经很长了。早在去年Dell的Mini 3i上市之前这款被称之为Dell Mini 5的产品就已经出现在大家的视野之中,而当时其搭载的就是在当时看来还是十分先进的Andr…

android 控制word,Android使用POI进行Word操作(一)

操作步骤步骤一:引用相关POI库步骤二:创建POI中的word文件对象步骤三:调用word文件对象的方法对文件进行操作步骤一:引用相关的POI库吐槽一下,这一步是最坑的本人尝试了很多版本组合,最新的版本提示class重…

android car bt模块,大谷蓝牙小车BT Car/Android Car手机控制 重力控制小车 安卓操控小车...

产品介绍:Android蓝牙遥控小车平台。是通过Android手机以蓝牙方式操控小车前进后退左转右转等,具有重力感应操控、触摸屏虚拟操控、虚拟摇杆三种控制模式。并且还具有呼吸灯、电源指示灯、蓝牙连接指示灯、速度等级指示灯等状态指示。小车自带锂电池及US…

Dijkstra(迪杰斯特拉)算法总结

知识概览 Dijkstra算法适用于解决所有边权都是正数的最短路问题。Dijkstra算法分为朴素的Dijkstra算法和堆优化版的Dijkstra算法。朴素的Dijkstra算法时间复杂度为,适用于稠密图。堆优化版的Dijkstra算法时间复杂度为,适用于稀疏图。稠密图的边数m和是一…

html表格中怎么将背景颜色虚化,如何在Photoshop中制作效果惊艳模糊背景!

把背景模糊一下,有时,效果会令人非常惊艳,但是,你知道如何在Photoshop中模糊背景吗? 在今天的教程中,我们将告诉大家,如何使背景模糊,而又不会使我们的主体周围出现光晕。在这个过程…

axure html 360安装扩展,小编搞定win7系统360浏览器添加Axure扩展的设置方案

经常使用电脑的朋友会发现win7系统360浏览器添加Axure扩展的问题比较常见,如今就有用户反映在使用电脑的时候遇到win7系统360浏览器添加Axure扩展的情况不知怎么解决,于是我就给大家整理总结了win7系统360浏览器添加Axure扩展的具体处理方案,…

前锋html5费用,足坛转会费最高的5位前锋,1.05亿欧元仅第5,第1比C罗还高1.22亿...

原标题:足坛转会费最高的5位前锋,1.05亿欧元仅第5,第1比C罗还高1.22亿大家都知道,前锋对于比赛的胜负非常重要,再加上其关注度比其他位置高,商业价值比较高,所以通常来说,他们的转会…

学计算机高中要买电脑,大一新生,打着学习的“口号”要求买电脑,父母到底该不该答应?...

原标题:大一新生,打着学习的“口号”要求买电脑,父母到底该不该答应?马上就进入9月份了,全国各大高校也都陆续开学。对于刚刚考上大学的大一新生来说,学校的一切都是很新鲜的,而且他们也不用像在…