Python爬虫下载暴漫表情
Python在爬虫上功能非常强大,近日发现聊天表情有些匮乏,就想用Python下载暴漫表情包。
有了暴漫表情包,再也不用担心聊天无话可说了。嘿嘿嘿
首先找到要下载的地址是百度贴吧的暴走表情,链接地址为:
选择只看楼主,链接变为:
就是在原有的URL链接后加入了see_lz=1,需要把所有的楼主发送的图片都抓取下来就要分析有多少链接,共有多少页,网页中给了我们答案。
另外重要的一点是点击上图中的页码来接后发现URL链接发生变化,最重要的一点是第一页变为:
相应的每一页至少修改pn的值,所以在初始化url的值时可以直接使用这个url值,方便了很多。
查看源代码,运气很好,查找关键字 “共” 有两条,且都是相同的格式,这样提取时就方便多了。
然后审查图片元素,发现图片是.jpg格式,并且紧跟着是
pic_ext=”jpeg”
不同地方只是链接和图片宽高度,这样就很好构造正则表达式了。
具体代码如下:
import os import re import urllib import urllib2 #获取网页代码 def gethtml(url): request = urllib2.Request(url) response = urllib2.urlopen(request) html = response.read() return html #获取网页总页数 def getpages(url): html = gethtml(url) reg = r'共<span class="red">(\d)</span>' pages = re.compile(reg) pagelist = pages.findall(html) for i in pagelist: return i #获取链接的URL地址,通过控制pn参数的值 def geturl(page): url = 'http://tieba.baidu.com/p/3175280444?see_lz=1&pn='+str(page) return url #保存图片到本地文件夹 def saveimg(html): global num reg = r'src="(.+?\.jpg)" pic_ext' img = re.compile(reg) imglist = img.findall(html) for imgurl in imglist: urllib.urlretrieve(imgurl, '%s.jpg' % num) print u'downloading...第'+str(num)+u'张图片' num += 1 #运行主程序 if __name__ == '__main__': #在本地新建一个f:/baoman/文件夹,用于保存下载的图片 path = r'f:/baoman/' if not os.path.exists(path): os.mkdir(path) os.chdir(path) num = 1 url = geturl(num) pages = getpages(url) for i in range(int(pages)): url = geturl(i+1) html = gethtml(url) saveimg(html) print u'下载结束,总共下载'+str(num-1)+u'张图片'
运行程序返回正常
本地文件夹下出现的149张新暴漫图片
哈哈,have fun!