python动态网页图片爬取
动态网站跟静态网站的区别
在python图片爬虫中,我们爬取的是静态网站。那么静态网站跟动态网站有什么区别呢?其中对于我们写爬虫来说,最大的区别就是用requests.get()
获取到的信息,动态网站是不全的。要想从动态网站里获取到需要的信息,就需要按F12
通过开发者工具进行分析。
开发者工具简单教程
面板 | 说明 |
---|---|
元素面板(Elements) | 该面板可查看渲染页面所需的HTML、CSS和DOM对象,并可实时编辑这些元素调试页面渲染效果 |
控制台面板(Console) | 该面板可记录各种警告与错误信息,并可作为shell在页面上与JavaScript交互 |
源代码面板(Sources) | 该面板可设置调试JavaScript的断点 |
网络面板(Network) | 该面板可查看页面请求、下载的资源文件,以及优化网页加载性能。还可查看HTTP的请求头、响应内容等 |
在这里,我们主要用到网络面板(Network)。
对于网站https://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word=%E7%88%B1%E4%B8%BD%E4%B8%9D
如果我们想爬取上面的图片,首先要进行的就是“抓包”。通俗来讲,就是找到该网站到底把图片藏在哪个文件里了。
下面是我爬取的全过程
一、找到我们想要的url(网址)
首先打开网站,然后按F12
,会出来开发者工具。然后我们点击Network
这时候按F5
刷新一下,就会加载出一些文件。
可以稍微往下滑动一下页面,以便加载文件。这时,我们点击XHR
选项,查看XHR类型的文件(因为大多数信息会放在这类文件中)。点击preview
,我们就能看到里面的json
信息。
然后通过一个解析json的网站解析里面的json信息,就可以找到照片的连接了。链接:https://www.json.cn/
这时,该文件的链接即为我们想要的url(网页)
二、代码部分
先上代码:
import urllib.request
import requests, json
import re#爬取网页地址
url = "https://image.baidu.com/search/acjson?tn=resultjson_com&logid=7779558212680695729&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E7%88%B1%E4%B8%BD%E4%B8%9D&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=©right=&word=%E7%88%B1%E4%B8%BD%E4%B8%9D&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&cg=star&pn=90&rn=30&gsm="
#防止被网页禁止访问
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36'}
html = requests.get(url,headers = header, timeout = 60).json()
obj_list = html['data']
x = 0
for img in obj_list:if(img):print(img["thumbURL"])urllib.request.urlretrieve(img["thumbURL"],'E:\\python\\爬虫数据\\%s.jpg'%x)x += 1
在刚才的网站中,我们解析了该url中的json信息。在json信息中我们发现,图片的链接是一串蓝色的链接。而且当我们打开该链接,跳转的网页确实是图片。所以我们只需要抓取链接信息就可以了。
显然,图片链接放在了data
中的thumbURL
里(middleURL等也是)。所以我们只需要提取这里面的信息并下载就可以了。
python动态网页图片爬取相关推荐
- 网络爬虫从入门到实践(三)————动态网页的爬取
动态网页的爬取 在动态网页爬取之前,我们要了解一种异步加载更新技术--AJAX(异步的JavaScript 和XML) 他的价值在于通过在后台与服务器进行少量的数据交换就可以使用网页的某部分进行更新 ...
- python爬取动态网页_python爬取动态网页数据,详解
原理:动态网页,即用js代码实现动态加载数据,就是可以根据用户的行为,自动访问服务器请求数据,重点就是:请求数据,那么怎么用python获取这个数据了? 浏览器请求数据方式:浏览器向服务器的api(例 ...
- python动态页面元素爬取_爬取动态网页python+Web kit
上一篇文章爬取动态网页python+selenium+webdriver介绍了爬取动态网站的一种模拟浏览器的方法,该方法的优劣也很明显 优: 可以模拟任何人的操作,输入账号密码,点击登录等等操作 劣: ...
- python动态页面元素爬取_Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过浏览器审查元素解析真实网页地址...
由于主流网站都使用JavaScript展示网页内容,和前面简单抓取静态网页不同的是,在使用JavaScript时,很多内容并不会出现在HTML源代码中,而是在HTML源码位置放上一段JavaScrip ...
- Windows下利用python+selenium+firefox爬取动态网页数据(爬取东方财富网指数行情数据)
由于之前用urlib和request发现只能获取静态网页数据,目前爬取动态网页有两种方法, (1)分析页面请求 (2)Selenium模拟浏览器行为(霸王硬上弓),本文讲的就是此方法 一.安装sele ...
- python动态页面元素爬取_python动态爬取网页
简介 有时候,我们天真无邪的使用urllib库或Scrapy下载HTML网页时会发现,我们要提取的网页元素并不在我们下载到的HTML之中,尽管它们在浏览器里看起来唾手可得. 这说明我们想要的元素是在我 ...
- python爬取京东评论分析_Python爬取京东商品评价(动态网页的爬取)
首先打开京东的任意几个商品页面,并观察URL,可以发现都是https://item.jd.com/+数字+.htm的格式,而且数字也随着商品的改变而改变,基本上可以确定这串数字是商品ID 之后我们找到 ...
- scrapy 动态网页处理——爬取鼠绘海贼王最新漫画
简介 scrapy是基于python的爬虫框架,易于学习与使用.本篇文章主要介绍如何使用scrapy爬取鼠绘漫画网海贼王最新一集的漫画. 源码参见:https://github.com/liudaol ...
- 小白入门爬虫~爬取12306车次信息(静态网站和动态网站的区分)(get动态网页的爬取)
elements,console,source,network elements分析网络结构,获取想要的数据 console打印一些网站的数据,做网站的时候有时候可能会在控制台上打印一些数据 sour ...
最新文章
- 段错误 php,php扩展出现段错误怎么办
- 【微信小程序】 自定义导航栏(navigationStyle=custom)
- leaflet加载离线OSM(OpenStreetMap)
- windows7系统电脑管理员权限的更改方法
- jQuery基础学习笔记(中)
- 多元最大似然估计函数
- matlab朴素贝叶斯手写数字识别_「深度学习系列」PaddlePaddle之手写数字识别
- 数据库中的字段NULL值和''
- PopClip for Mac(剪切板复制粘贴工具)
- Simscape Multibody --- 齿轮齿条约束
- 推荐一个特别好用的软件,简直就是懒人神器,强迫症的福音
- js获取当前时间的前几天时间
- vue2和vue3 的 keep-alive的用法
- 【19调剂】苏州科技大学2019年硕士研究生招生预调剂公告
- python资格证_掌握核心竞争力:五大数据科学类资格证书
- 模型预测控制(MPC)的公式推导与理解 (转)
- 【Unity】创建一个自己的AR安卓程序
- html轮廓线怎么取消,c4d这些线条怎么取消掉
- nbsp是jsp里的空格
- 利用metaphlan2结果计算alpha多样性
热门文章
- 秦九韶多项式运算时间java,秦九韶算法的思想与解多项式算法时间比较附代码...
- 吃鸡系统服务器被拦截,绝地求生BE错误拦截系统文件怎么办?解决方法分享
- 华为鸿蒙系统不能用于手机,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可
!【手机吧】_百度贴吧...
- 宝塔Linux部署JavaWeb项目两种方式,图文并茂
- DVWA配置(适用任何系统版本)
- 【91xcz】Win7资源管理器统一浏览样式
- 不规则图形数格子的方法_五年级数学上方格图中不规则图形的面积计算教案.doc...
- 分析手机所拍照片中间会发红的原因
- 手机网页调用手机QQ QQ在线客服
- MAC电脑上使用E-Study的坑