当然是给女朋友抓取不同色号口红的图片了。

女朋友想要一只XX色号的口红,怎么办?那是一个终极问题。

对我们直男来说,口红,在我们眼里只有一种颜色,那当然是红色了。但是这话要让一众多妹子听了,妹子一定会心想,什么,你居然说口红只有红色?直男!

那么问题来了,请各位男生从以上色号找出俄罗斯红、苹果红和苏丹红色三种色号……

面对妹子的刁难,我们男生也不甘示弱,请妹子们从以下奥特曼中找出泰罗奥特曼……

哼,直女,这都分不清。(男生内心的OS)

当然,求生欲强的男生肯定不会这么做的,作为勤奋、聪明、帅气的好男人,我们要学会——分辨色号!

进入我们今天的爬虫项目——抓取电商网站上所有口红的图片。当然,顺便学习一下口红色好,将来女朋友说,我想要个苏丹红色号的口红,你买给我好不好,咱们也不至于傻眼,对不。

1、首先,我们先打开京东,输入口红,进入对应的界面,提取出此时的地址:

https://search.jd.com/Search?keyword=%E5%8F%A3%E7%BA%A2&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&stock=1&page=1&s=1&click=0 #第一页

https://search.jd.com/Search?keyword=%E5%8F%A3%E7%BA%A2&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&stock=1&page=3&s=56&click=0 #第二页

我们发现,在上地址中,page字段发生了变化,因此可以推断,page字段是控制相应的页码,即page取1、3、5、7、9……时,对应的页码1、2、3、4、5……

2、正则表达式匹配图片的地址,并保存到本地。

正则表达式在前面我们讲过,这里不再赘述,我们先将抓取的网页解码后保存到本地,找出对应的图片地址,构建正则表达式匹配图片。经过对比,正则表达式构建如下:

我们还有介绍urllib库的一个函数,urlretrieve()函数,此函数接收两个参数,一个是抓取的地址,一个是保存的路径,功能时将抓取的信息保存在指定的路径。

3、构建异常处理,前面的文章讲过,不再赘述。

4、将逻辑封装在函数内,以便日后复用。事实上,今后编写的任何代码都建议大家将其封装进函数。

4、编写脚本,具体代码及注释如下。

import re#导入re模块

import urllib.request as eq#导入urllib模块

def pachong(url,page):#建名为pachong的函数,传入两个参数————地址和页码

headers=('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134')

opener=eq.build_opener()

opener.addheaders=[headers]

eq.install_opener(opener)#添加头信息,并安装为全局

data=eq.urlopen(url).read().decode('utf-8')#抓取网页,并以utf8格式解码

pat=''

imagelist=re.compile(pat).findall(data)#正则表达式匹配图片地址

x=1#循环标记

for i in imagelist:

path='D:/python36/pachong/lipstick/'+str(page)+str(x)+'.jpg'

imageurl='http://'+i

try:#异常处理

eq.urlretrieve(imageurl,filename=path)

except eq.URLError as e:

if hasattr(e,'code'):

x=x+1

if hasattr(e,'reason'):

x=x+1

x=x+1

for j in range(1,50):#抓取前26页所有口红的图片

url='https://search.jd.com/Search?keyword=%E5%8F%A3%E7%BA%A2&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&stock=1&page='+str(j)

pachong(url,j)

5、脚本写好后,我们就点击运行吧。大概一分钟后,1361张口红的图片就已经抓取到了我们的电脑,以下是其中的一部分。

在抓取到如此多的图片后,我们当然要好好研究一下色号,争取早日认出苏丹红。

当然,如果有小伙伴不想自己爬,私信我,我把这1361张图发给你,回去好好学习,争取早日脱单。

最后,欢迎大家关注我的专栏:Python学习日记​zhuanlan.zhihu.com

用python画奥特曼_你都用 Python 来做什么?相关推荐

  1. python画鸟_菜鸟世界 -使用python制作一张字符画

    1.灰度图与字符画 黑白照片大家都不陌生,但黑白照片并不是只有黑白两种颜色,还有介于黑和白之间的颜色,这些颜色色深度从0到255,0是黑色,255是白色,也叫灰度值 制作一张字符画的原理就是先将一张图 ...

  2. 用python画狗_日常分享| 用Python画两只可爱的狗狗

    日常分享| 用Python画两只可爱的狗狗 放假在家不能出门,就提前自学了一点Python,毕竟是下个学期的课程,让我非常惊喜的是和学过Java还有C语言不同,Python居然可以画画哈哈哈哈哈哈 两 ...

  3. python流浪图书馆_你都用 Python 来做什么?

    这一年自学了Python,然后又学习了基于Python的界面程序框架PyQt5,本身自己也是写软件测评的,所以对市面上的刚需有所了解. 比如我发现市面上的音频转文字和PDF文章翻译这两项功能几乎都是收 ...

  4. python画恐龙_教你用Python实现谷歌的小恐龙游戏

    谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏". (如果想要直接进行游戏,可以在地址栏输入:chrome://dino ) 今天我们就来给大家演示下, ...

  5. python画羊_羊车门作业 Python版

    题目描述:有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择. ...

  6. 用python画宇宙_快来用Python和Blender超简单绘制你的宇宙飞船!

    见过用Python进行3D建模操作的么?下面演示给你看看: 厉害吧?这就是Blender,一款能用Python进行建模的软件. Blender是一个免费的开源3D计算机图形软件工具集,用于创建动画电影 ...

  7. python画气球_戳气球(python)

    问题描述* 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.如果你戳破气球 i ,就可以获得 nums[left] * nu ...

  8. 只安装python能干什么_你都用 Python 来做什么?

    人在美国,刚下飞机,这个问题要先拉一拉时间轴2016年第一次接触 python,做的是自动化测试 2017年开始自学 python,做的是投票网页开发 2018年正式接触 python,做的是WAF机 ...

  9. python画气球_我们的视频 Python 打方气球~

    我们的视频 Python打方气球~~~~~ QQ:1981255347 比心 关注我 import random import time score = 0 nums = 10 size = 50 b ...

  10. 如何运用python画名字_[原创]如何使用Python在好友画我上画一个标准的汉字震惊朋友圈...

    准备工作: 1.一部Android手机 文中测试机型为三星S8. 2.一个Python3.*环境. 3.安装好adb测试桥. 测试环境:macOS 10.13.2* Python3.6 import ...

最新文章

  1. qq浏览器网页翻译_科研利器 | NCBI网站影响因子与网页翻译插件安装指南
  2. Intel或将裁员数千人 谋求业务转型
  3. 前缀和算法原理及代码
  4. 处理业务代码中循环遍历出现的性能问题
  5. element js 包含字符_selenium3.x(10)js弹框处理
  6. 微基准测试 r_在您的构建过程中添加微基准测试
  7. laravel 检测sql_在Laravel PHP应用程序中轻松进行面部检测
  8. 网站服务器 开放端口扫描,端口扫描之开放端口扫描方式
  9. 秒懂三层交换机的作用及使用
  10. jquery自定义插件_创建一个自定义jQuery插件
  11. 心灵捕手影评,觉得很好。看一部好电影就像读一本好书。
  12. 大数据Python基础学习——练习(二)
  13. s32ds 路径_S32DS 使用 tips--工程属性配置(编译选项和C编译器、汇编器及链接器设置)...
  14. Div+CSS网页设计(HTML5)
  15. comsol纳米光学案例分析
  16. RTP/RTCP 和 SRTP/SRTCP协议
  17. c语言怎么做翻译软件,使用有道翻译API做翻译(c语言实现)
  18. 使用图像播放Java中的一种技巧-搜索图像,将图像转换为文本,隐藏数据
  19. JQuery-slideToggle
  20. 凉拌苦菊怎么做 凉拌苦菊的做法

热门文章

  1. 同样是路过式,登录与下载攻击区别何在?
  2. 80年代的人为什么不结婚
  3. oracle11g64位怎么用sql,PLSQL连接Oracle11g64位
  4. Hulugans看什么 | 50多部迪士尼经典动画片带你重温童年
  5. SpringBoot启动成功后,访问接口报错404(error:“Not Found“)
  6. 正面管教读书笔记 09 家庭会议
  7. Baidu Expressive TTS《Multi-reference Tacotron by Intercross Training for Style Disentangling...》
  8. 在word中同时输入上下标设置
  9. 混合策略与混合策略纳什均衡
  10. 三方支付之支付宝支付实现逻辑