Python数据爬虫学习笔记(10)淘宝图片爬虫实战
所谓图片爬虫,即是从互联网中自动把对方服务器上的图片爬下来的爬虫程序。
一、图片爬虫前的网页链接分析
1.首先打开淘宝首页,在搜索框中输入关键词,如“神舟”,在搜索结果界面中点击下一页,分别打开第一页,第二页,第三页的搜索结果,并记下每一页结果的URL至记事本中,如下:
2.观察每一个网页的URL,不要去观察它们不同的部分,而是着眼于每个URL中相似的部分。
(1)可以注意到每个URL中都有“s=XXX”部分,推测为代表了不同的页码的数值,0代表第一页,44代表了第二页,88代表了第三页,推测132代表第四页,将第一页的URL中的“s=0”修改为“s=132”,即可发现神奇般地跳转到了第四页。
(2)虽然将URL复制下来之后无法看到关键词,但是在浏览器中可以清晰看到“q=XXX”为输入的关键词内容,可以推测,浏览器在实际获取网页时将中文字符进行了编码。
3.因此可以初步设想出图片爬虫所需要的网页链接的结构:
二、图片爬虫前的图片链接分析
1.右键单击淘宝网页上的图片,点击复制图片地址,粘贴到记事本中分析:
3.观察URL,注意到前半部分为图片资源在服务器中的地址,后半部分为图片名称以及其格式,特别是“250X250”代表了图片的分辨率,因为在淘宝搜索页中,为节省资源,采取了缩略图的方式。
4.将图片URL中的核心部分,如本例的“TB2ISTydyCYBuNkSnaVXXcMsVXa”在源代码页面中进行搜索:
将链接复制下来打开,即可发现,高清大图无处遁形:
5.观察图片链接的前后格式,注意到前以 pic_url":" 开头,后以 ", 结尾,本例内容比较简单,无需进行抓包即可获取图片链接。
三、图片爬虫程序编写
import urllib.request
import re
keyname="神舟"
key=urllib.request.quote(keyname) #编码
#尝试爬取前三页内容
for i in range(0,3): #构造页面URLurl="https://s.taobao.com/search?q="+key+"&s=44"data=urllib.request.urlopen(url).read().decode("utf-8","ignore")pat='pic_url":"//(.*?)"'#获得图片URLimagelist=re.compile(pat).findall(data)for j in range(0,len(imagelist)):thisimg=imagelist[j]#构造图片URLthisimgurl="http://"+thisimgfile="F:/taobaoIMG/"+str(i)+str(j)+".jpg"urllib.request.urlretrieve(thisimgurl,filename=file)
Python数据爬虫学习笔记(10)淘宝图片爬虫实战相关推荐
- python网络爬虫学习笔记(二):爬虫基本概述
1.爬虫的基本概述 (1) 获取网页 爬虫首先要做的工作就是获取网页,这里就是获取网页的源代码.源代码里包含了网页的部分有用信息,所以只要把源代码获取下来,就可以从中提取想要的信息了. python提 ...
- Python数据科学学习笔记之——机器学习专题
机器学习专题 1.专题:朴素贝叶斯分类 1.1.朴素贝叶斯分类 朴素贝叶斯分类器建立在贝叶斯分类方法的基础上,其数学基础是贝叶斯定理--一个描述统计量条件概率关系的公式.在贝叶斯分类中,我们希望确定一 ...
- python爬虫学习笔记(三)——淘宝商品比价实战(爬取成功)
2020年最新淘宝商品比价定向爬取 功能描述 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格. 理解:淘宝的搜索接口 翻页的处理 技术路线:requests re 程序的结 ...
- Python数据科学学习笔记之——Matplotlib数据可视化
Matplotlib 数据可视化 1.Matplotlib 常用技巧 1.1.导入 Matplotlib import matplotlib as mpl import matplotlib.pypl ...
- Python数据可视化学习笔记:第一章 关联图 第四节 使用Python绘制一般气泡图
前言 声明:这个系列的博文都是我自己学习所得的东西,秉承着每天进步一点点的理念进行学习,我参考的课程是<菊安酱与菜菜的Python机器学习可视化50图>,使用的Python版本为3.6.4 ...
- c语言更新数据,sqlite学习笔记10:C语言中使用sqlite之查询和更新数据
前面说到的 sqlite_exec() 中的第三个参数, SQLite 将为 sql 参数内执行的每个 SELECT 语句中处理的每个记录调用这个回调函数. 本节添加了两个函数,selectFromT ...
- 【爬虫学习笔记day66】7.8. scrapy-redis实战-- IT桔子分布式项目2
文章目录 7.8. scrapy-redis实战-- IT桔子分布式项目2 项目实现: items.py settings.py middlewares.py spiders/juzi.py scra ...
- 《TensorFlow深度学习》学习笔记--10.卷积神经网络--1.LeNet-5实战
1. LeNet-5 实战 1. 导入相关的包 import tensorflow as tf from tensorflow.keras import Sequential, layers, los ...
- 【爬虫学习笔记day65】7.7. scrapy-redis实战-- IT桔子分布式项目1
文章目录 7.7. scrapy-redis实战-- IT桔子分布式项目1 7.7. scrapy-redis实战-- IT桔子分布式项目1 IT桔子是关注IT互联网行业的结构化的公司数据库和商业信息 ...
- python爬虫学习笔记 1.9 (Handler处理器 和 自定义Opener)
python爬虫学习笔记 1.1(通用爬虫和聚焦爬虫) python爬虫学习笔记 1.2 ( HTTP和HTTPS ) python爬虫学习笔记 1.3 str和bytes的区别 python爬虫学习 ...
最新文章
- redis优雅的批量删除key
- C# 与 Unity 同名函数
- 如何把 DropDownList 某一个 Item 的 Text 改成粗体 ?
- [翻译]01-ASP.NET MVC 3介绍
- 配置审计(Config)变配报警设置
- python捕获异常装饰器_python异常装饰器--比较全的版本了
- [转载] 树莓派4B使用 Adafruit_PCA9685 报错IOError: [Errno 121] Remote I/O error解决办法
- Udacity数据集
- 三星6818芯片火焰报警器驱动的编写
- Ruby中yield和block的用法
- [译]尤雨溪: Ref语法糖提案
- Elasticsearch学习之Elasticsearch的介绍和基本使用
- 设计师都在用的6个免费设计素材网站~
- 华为手机的逆天神操作,一键变身扫描仪,99页纸质文档秒变电子版
- 深入浅出Google Clould Platform (1)----GCP 考证
- 套接字中的数据转换(大端模式/小端模式)
- C语言Dialogbox添加图片,dialogbox_传奇服务端CloseBigDialogBox是什么意思
- JAVA课程设计——小学数学练习
- .NET/C# — EXCEL文件内容添加到数据库中
- DSSS、OFDM、FHSS的区别与联系
热门文章
- 投掷骰子的秘密,怎么样猜概率最高?python告诉你!
- MOS管的工作原理和区分
- 股票移动平均线matlab,matlab – 计算移动平均线
- 嘀,你有一份1024礼物待查收!
- 《Counting Out Time: Class Agnostic Video Repetition Counting in the Wild》论文笔记
- 知乎百万热议:程序员如何做到年薪 50 万?
- Oracle常用问题1000问
- ThreadX最小移植及tx_initialize_low_level.s的简要分析
- 安可与普通测评的区别_等级保护、风险评估和安全测评三者之间的区别与联系...
- 只网签没备案 房管局能查到吗_房子备案了,但是没有房产证,房管局能查询出来么...