所谓图片爬虫,即是从互联网中自动把对方服务器上的图片爬下来的爬虫程序。

一、图片爬虫前的网页链接分析

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)淘宝图片爬虫实战相关推荐

  1. python网络爬虫学习笔记(二):爬虫基本概述

    1.爬虫的基本概述 (1) 获取网页 爬虫首先要做的工作就是获取网页,这里就是获取网页的源代码.源代码里包含了网页的部分有用信息,所以只要把源代码获取下来,就可以从中提取想要的信息了. python提 ...

  2. Python数据科学学习笔记之——机器学习专题

    机器学习专题 1.专题:朴素贝叶斯分类 1.1.朴素贝叶斯分类 朴素贝叶斯分类器建立在贝叶斯分类方法的基础上,其数学基础是贝叶斯定理--一个描述统计量条件概率关系的公式.在贝叶斯分类中,我们希望确定一 ...

  3. python爬虫学习笔记(三)——淘宝商品比价实战(爬取成功)

    2020年最新淘宝商品比价定向爬取 功能描述 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格. 理解:淘宝的搜索接口 翻页的处理 技术路线:requests­          re 程序的结 ...

  4. Python数据科学学习笔记之——Matplotlib数据可视化

    Matplotlib 数据可视化 1.Matplotlib 常用技巧 1.1.导入 Matplotlib import matplotlib as mpl import matplotlib.pypl ...

  5. Python数据可视化学习笔记:第一章 关联图 第四节 使用Python绘制一般气泡图

    前言 声明:这个系列的博文都是我自己学习所得的东西,秉承着每天进步一点点的理念进行学习,我参考的课程是<菊安酱与菜菜的Python机器学习可视化50图>,使用的Python版本为3.6.4 ...

  6. c语言更新数据,sqlite学习笔记10:C语言中使用sqlite之查询和更新数据

    前面说到的 sqlite_exec() 中的第三个参数, SQLite 将为 sql 参数内执行的每个 SELECT 语句中处理的每个记录调用这个回调函数. 本节添加了两个函数,selectFromT ...

  7. 【爬虫学习笔记day66】7.8. scrapy-redis实战-- IT桔子分布式项目2

    文章目录 7.8. scrapy-redis实战-- IT桔子分布式项目2 项目实现: items.py settings.py middlewares.py spiders/juzi.py scra ...

  8. 《TensorFlow深度学习》学习笔记--10.卷积神经网络--1.LeNet-5实战

    1. LeNet-5 实战 1. 导入相关的包 import tensorflow as tf from tensorflow.keras import Sequential, layers, los ...

  9. 【爬虫学习笔记day65】7.7. scrapy-redis实战-- IT桔子分布式项目1

    文章目录 7.7. scrapy-redis实战-- IT桔子分布式项目1 7.7. scrapy-redis实战-- IT桔子分布式项目1 IT桔子是关注IT互联网行业的结构化的公司数据库和商业信息 ...

  10. python爬虫学习笔记 1.9 (Handler处理器 和 自定义Opener)

    python爬虫学习笔记 1.1(通用爬虫和聚焦爬虫) python爬虫学习笔记 1.2 ( HTTP和HTTPS ) python爬虫学习笔记 1.3 str和bytes的区别 python爬虫学习 ...

最新文章

  1. redis优雅的批量删除key
  2. C# 与 Unity 同名函数
  3. 如何把 DropDownList 某一个 Item 的 Text 改成粗体 ?
  4. [翻译]01-ASP.NET MVC 3介绍
  5. 配置审计(Config)变配报警设置
  6. python捕获异常装饰器_python异常装饰器--比较全的版本了
  7. [转载] 树莓派4B使用 Adafruit_PCA9685 报错IOError: [Errno 121] Remote I/O error解决办法
  8. Udacity数据集
  9. 三星6818芯片火焰报警器驱动的编写
  10. Ruby中yield和block的用法
  11. [译]尤雨溪: Ref语法糖提案
  12. Elasticsearch学习之Elasticsearch的介绍和基本使用
  13. 设计师都在用的6个免费设计素材网站~
  14. 华为手机的逆天神操作,一键变身扫描仪,99页纸质文档秒变电子版
  15. 深入浅出Google Clould Platform (1)----GCP 考证
  16. 套接字中的数据转换(大端模式/小端模式)
  17. C语言Dialogbox添加图片,dialogbox_传奇服务端CloseBigDialogBox是什么意思
  18. JAVA课程设计——小学数学练习
  19. .NET/C# — EXCEL文件内容添加到数据库中
  20. DSSS、OFDM、FHSS的区别与联系

热门文章

  1. 投掷骰子的秘密,怎么样猜概率最高?python告诉你!
  2. MOS管的工作原理和区分
  3. 股票移动平均线matlab,matlab – 计算移动平均线
  4. 嘀,你有一份1024礼物待查收!
  5. 《Counting Out Time: Class Agnostic Video Repetition Counting in the Wild》论文笔记
  6. 知乎百万热议:程序员如何做到年薪 50 万?
  7. Oracle常用问题1000问
  8. ThreadX最小移植及tx_initialize_low_level.s的简要分析
  9. 安可与普通测评的区别_等级保护、风险评估和安全测评三者之间的区别与联系...
  10. 只网签没备案 房管局能查到吗_房子备案了,但是没有房产证,房管局能查询出来么...