使用正则表达式提取百度贴吧网页中的楼主发的图片

# -*- coding:utf-8 -
import re  #正则模块
import urllib2
import urllib#使用正则表达式提取百度贴吧网页中的楼主发的图片def get_content(url):html = urllib.urlopen(url)content = html.read()html.close()return contentdef get_imgs(info):"""<img class="BDE_Image" src="http://imgsrc.baidu.com/forum/w%3D580/sign=eadc62078094a4c20a23e7233ef51bac/63395bb5c9ea15ce0a876301b1003af33a87b24b.jpg"size="65807" height="600" width="425">"""#正则表达式+?重复一次或多次 发现BDE_Image属性值是楼主发的图片--不会把签名和头像下载下regex = r'class="BDE_Image" src="(.+?\.jpg)"'pat=re.compile(regex)images_code=re.findall(pat,info)i = 0for img_url in images_code:print img_urlurllib.urlretrieve(img_url,'F:\\data\\pachong\\pic2\\%s.jpg' % i)i +=1# info=get_content("http://tieba.baidu.com/p/4311459540")
info=get_content("http://tieba.baidu.com/p/4364768066")
print get_imgs(info)
# -*- coding:utf-8 -
import re
import urllib2
import urllibdef get_content(url):response = urllib2.urlopen(url)content = response.read()return contentdef get_pages(content):reg = re.compile(r'<span class="red">(\d+)</span>')pages = reg.search(content).groups()print "本帖子共%d页 " % int(pages[0])return str(pages[0])def get_imgurls(content):''' doc.'''global numregxt = r'class="BDE_Image" src="(.+?\.jpg)"'#urllist= regxt.search(content).groups()urllist= re.findall(regxt, content)if not urllist:regxt = r'class="BDE_Image" height=".+?" src="(.+?\.jpg)"'#urllist= regxt.search(content).groups()urllist= re.findall(regxt, content)print "第%d页一共%d张图片" % (num+1,len(urllist))return urllist
def get_imgs(urllist):global itemglobal retre_secretre_sec.clear()i = 0for ImgUrl in urllist:try:urllib.urlretrieve(ImgUrl, '%03d.jpg' % item)print "保存%03d图片成功。%d" % (item,i)except:retre_sec[ImgUrl] = itemprint "保存%03d图片失败。进行第二次保存。%d" % (item,i)finally:item += 1i += 1def retre_images_sec(urldict):if len(urldict):print "现在开始第二次保存,共%03d张图片" % len(urldict)for url in urldict:try:urllib.urlretrieve(url, '%03d.jpg' % urldict[url])print "第二次保存%03d图片成功。" % urldict[url]except:print "第二次保存%03d图片失败" % itemprint "图片地址为 %s" % urlelse:print "第二次无图片需要保存。"item = 1
retre_sec = dict()
url = 'http://tieba.baidu.com/p/2982230467'
url += '?see_lz=1'
content = get_content(url)
pages = int(get_pages(content))    #得到帖子页数 只看楼主for num in range(pages):url += '&pn=%d' % (num+1)content = get_content(url)             #得到html源码img_list = get_imgurls(content)     #得到所有图片的URL 以list形式返回get_imgs(img_list)                         #遍历list 保存图片

Python爬虫urllib2笔记(三)之使用正则表达式提取百度贴吧网页中的楼主发的图片相关推荐

  1. Python学习基础笔记三十二——正则表达式

    官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符.及这些特定字符的组合,组成一个"规则字符串",这个规则字符串用来表达对字符串的一种过滤逻辑. 1. ...

  2. Python爬虫学习笔记-第六课(正则表达式下+csv模块的使用)

    正则表达式下+csv模块的使用 1. re模块方法补充 1.1 compile()方法 1.2 search()和findall()方法 1.3 split()方法 1.4 sub()方法 2. re ...

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

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

  4. python 爬虫系列(三) json格式提取——小黑盒为例

    这一章,我们以小黑盒官网网页版改版前的一个JSON链接为例,详细讲解,如何提取json文件,并且保存到excel中(保存到数据库的方式类似只是格式不太相同而已). 我们跳过如何找到这个链接的过程,这个 ...

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

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

  6. python爬虫课程笔记

    11 Oct 2020 国庆长假公司上了一个新项目,一直没有休息,10月9号开了爬虫班,事情真是一大堆.开班典礼和第一节课还是挺简单的,代码都没敲.第一节课主要讲了端口的概念,通讯协议,数据拆包,数据 ...

  7. Python爬虫入门(7):正则表达式

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  8. Python爬虫学习笔记 -- 爬取糗事百科

    Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...

  9. python爬虫学习笔记3.2-urllib和request练习

    python爬虫学习笔记3.2-urllib和request练习 一.urllib练习 1.百度贴吧案例 需求 分析 手动测试查询流程 观察页面 分析特殊部分 https://tieba.baidu. ...

最新文章

  1. 使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析
  2. 本地应用 v-for 指令
  3. React 虚拟Dom 转成 真实Dom 实现原理
  4. oracle经典书籍推荐
  5. C#读写文本文件小结
  6. Codeforces 359D Pair of Numbers | 二分+ST表+gcd
  7. mysql数据库文件的真实的物理存储位置
  8. 双指针算法基本原理和实践
  9. WebRTC 的 log 系统实现分析
  10. 浅析开源蜜罐识别与全网测绘(安全客)
  11. linux计划任务crond服务
  12. 两个线程同时从服务器接收消息_Linux高性能服务器处理框架
  13. 最受互联网争抢的web前端工程师
  14. 基于React开发一个音乐播放器
  15. 《机器人自动化:建模、仿真与控制》——第2章 仿真
  16. 丹泽尔 x 陆奇:扫地僧牛逼的日常
  17. Metaverse:一念天堂,还是一念地狱?
  18. mysql odbc 64位 驱动_MySQL ODBC驱动程序下载
  19. 什么是一条好链?——一定要有自主创新的硬核技术
  20. EMC传导骚扰的共模电流与差模电流

热门文章

  1. 【微信小程序】课程表案例--0基础版
  2. Fielding博士论文导读----第6章
  3. 2021-2027全球与中国五轴激光切割机市场现状及未来发展趋势
  4. Supermap配置本地许可
  5. 用Python的Pandas绘制股票唐奇安通道!
  6. 7个学习UI、UX设计一定要经历的步骤
  7. 机器学习 预测 交通_使用机器学习预测交通事故
  8. video4linux 讲解
  9. 10 .SQL——查,改,删 的应用练习
  10. OpenGL着色器程序解析--镜面反射光