目标:通过正则表达式写一个爬虫程序,抓下网页的所有图片。
思路
1.  获取网页源代码
2.  获取图片

3.  下载图片

第一步,打开URL 获取源代码
[root@node1 python]# mkdir p_w_picpath
[root@node1 python]# cd p_w_picpath
[root@node1 python]# vim getHtml.py
#!/usr/bin/python
import re
import urllibdef getHtml(url):html = urllib.urlopen(url)scode = html.read()return scodeprint getHtml('http://tieba.baidu.com/p/1762577651')

第二步,获取图片相关地址(正则匹配)

从取回的源代码中分析图片相关URL 的构造,然后通过正则表达式将图片地址提取出来
源文件中图片的标签是这样子的:
<img class="BDE_Image" src="http://imgsrc.baidu.com/forum/w%3D580/sign=2e8f3ca53af33a879e6d0012f65d1018/4ece3bc
79f3df8dc2ab63004cd11728b46102899.jpg" width="560" height="400" changedsize="true">

要获取的是http://imgsrc.baidu.com/xxxxxxx.jpg

#!/usr/bin/python
import re
import urllibdef getHtml(url):html = urllib.urlopen(url)scode = html.read()return scodedef getImage(source):re = r'src="(.*?\.jpg)" width='imgre = re.compile(re)p_w_picpaths = re.findall(imgre,source)return p_w_picpathssource = getHtml('http://tieba.baidu.com/p/1762577651')
print getImage(source)
第三步,下载获取到的图片
上一步已经将取到的图片地址存放在一个列表中了,现在只有对这个列表做一个遍历即可
#!/usr/bin/python
import re
import urllibdef getHtml(url):html = urllib.urlopen(url)scode = html.read()return scodedef getImage(source):re = r'src="(.*?\.jpg)" width='imgre = re.compile(re)p_w_picpaths = re.findall(imgre,source)for i in p_w_picpaths:urllib.urlretrieve(i,'1.jpg')source = getHtml('http://tieba.baidu.com/p/1762577651')
print getImage(source)
但是这样会有一个问题,就是每个图片保存下来后都会被命名为1.jpg ,换句话说就是后面的图片会覆盖前面的图片,所以只能保存到一个图片。因此还需要一步,对图片进行命名
#!/usr/bin/python
import re
import urllibdef getHtml(url):html = urllib.urlopen(url)scode = html.read()return scodedef getImage(source):re = r'src="(.*?\.jpg)" width='imgre = re.compile(re)p_w_picpaths = re.findall(imgre,source)x = 0for i in p_w_picpaths:urllib.urlretrieve(i,'%s.jpg' % x)x+=1source = getHtml('http://tieba.baidu.com/p/1762577651')
print getImage(source)
执行结果:
[root@node1 p_w_picpath]# python getHtml.py
[root@node1 p_w_picpath]# ls
11.jpg  13.jpg  15.jpg  17.jpg  19.jpg  20.jpg  3.jpg  5.jpg  7.jpg  9.jpg  10.jpg
12.jpg  14.jpg  16.jpg  18.jpg  1.jpg   2.jpg   4.jpg  6.jpg  8.jpg  getHtml.py

转载于:https://blog.51cto.com/pmghong/1334086

Python 爬虫小程序(正则表达式的应用)相关推荐

  1. 25 岁以上的程序员,认识不了几个中药材的。Python 爬虫小课 9-9

    中药材在橡皮擦眼中,只有 马钱子.决明子.苍耳子.还有莲子.黄药子.苦豆子.川楝子.我要面子,这是少时从<本草纲目>学来的. 其余的也就知道个枸杞.三七.藿香正气水.板蓝根了,为了摆脱不认 ...

  2. python如何设计爬虫界面软件_Python+PyQt5设计B站视频数据爬虫小程序

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python ,作者J哥 前言 目前,市场上有大量 Python图形用户界面( ...

  3. python微信小程序爬虫_Python爬取微信小程序实战(通用)

    背景介绍 最近遇到一个需求,大致就是要获取某个小程序上的数据.心想小程序本质上就是移动端加壳的浏览器,所以想到用Python去获取数据.在网上学习了一下如何实现后,记录一下我的实现过程以及所踩过的小坑 ...

  4. 9139 位艺人在 Python 面前不值一提 # Python 爬虫小课 5-9

    本篇博客的最终目标是爬取世界上 9139 位艺人的身高.体重.生日.血型,当然有些数据目标网站没有提供,不在做过多的扩展. 爬虫小课系列文章导读链接 第一篇:Python 爬虫小课 1-9 宝妈程序媛 ...

  5. 虎嗅 24 小时点赞器,一个案例附带一个爬虫技巧,Python 爬虫小课 7-9

    很多平台都有点赞功能,今天提供的这个思路可用于很多平台,希望可以掌握该技巧,实现你自己的点赞器.本案例目标为虎嗅 24 小时频道点赞. 爬虫小课系列文章导读链接 第一篇:Python 爬虫小课 1-9 ...

  6. 爬虫爬评书吧_爬虫 + 小程序 自定义开发一个听书程序

    最近工作之余会听听评书,但主流门户收费加广告着实让人烦躁.作为IT人,怎能如此顺应别人家的产品规则. 下面以 python + taro 为例,写一个爬虫 + 小程序的播放应用: 最终实现的效果如下: ...

  7. 学会这 10000 个段子,成为 IT 职场幽默达人。Python 爬虫小课 8-9

    现代职场达人,应该做到 有情.有趣.有用.有品.好了,去掉 "有" 字你就成了.那如何成为职场幽默达人呢,咱需要一定的素材也就是段子,多看段子才能多说段子,并且还能说高级段子. 点 ...

  8. 小吃搜搜乐,弄点小吃数据放在本地、Python 爬虫小课 6-9

    最近查询一下河北有哪些小吃,找来找去不是很方便,发现百度有个接口,顺手牵一下数据,通过各省份的枚举,把数据都整理到 Excel 中,以后在查询就比较方便了. 下图为最终抓取数据格式,都是好吃的. 爬虫 ...

  9. 1s 爬取到 1131 只数码兽,送给《数码宝贝:最后的进化》> Python 爬虫小课 4-9

    童年回忆<数码宝贝:最后的进化>10 月 30 日在中国内地上映.所有和我们同龄的人都仍然记得数码宝贝,并且印象最深的还是第一部, 那永远的第一部! 本系列文章导读链接 第一篇:Pytho ...

最新文章

  1. phpcms V9利用num++实现多样形式列表标签调用
  2. 第十一章:集合(一)
  3. HTML5 随机弹跳的小球
  4. 为什么很多公司转型Go语言开发?Go语言能做什么
  5. 从使用角度看何为zookeeper
  6. 好文推荐 | etcd 问题、调优、监控
  7. java datarow 使用_DataRow中的链接(数据表)
  8. VirtualBox在win10下安装一个国产深度os桌面系统的操作教程
  9. 微软员工揭秘 Windows 的 Linux 子系统研发全过程
  10. 【27】Python100例基础练习题6
  11. 2017年初BAT的JAVA面试题汇集
  12. java之final的各种用法
  13. 使用HDTunePro检测硬盘快速上手教程
  14. 大二C#实现酒店管理系统(C端展示、前台操作、登记入住、入住管理、职位管理、公告系统等)
  15. QGIS 导入图层到 PostGIS “导入某些图层失败! 图层“public“.‘xxxx‘载入失败 “
  16. 产品界的三大定律 --周宏桥
  17. 电脑有网但打不开网页怎么办?
  18. Android中使用ExpandableListView实现微信通讯录界面(完善仿微信APP)
  19. Ubuntu18.04.4安装
  20. vue中使用svg-icon遇到的坑

热门文章

  1. solr7.4.0+mysql+solrj(简而优美)
  2. Quartz(任务调度)- job串行避免死锁
  3. Sharepoint学习笔记---Linq to Sharepoint--查询语法
  4. poj 3261 Milk Patterns 后缀数组 最长重复子串
  5. C语言-动态内存管理
  6. 汇编中addr和offset
  7. Android—显示窗口调用相机与相册
  8. centos7磁盘逻辑分区命令_Centos7 磁盘分区概念
  9. 哥斯拉Godzilla webshell管理工具
  10. 仿淘宝商品详情页图片滑动并且数字也跟着变化