python练习册 每天一个小程序 第0013题

爬取贴吧图片教程
本文介绍了一种使用Python爬取百度贴吧图片的方法。通过解析网页源码并利用正则表达式提取图片链接,实现了自动化下载功能。适用于初学者学习网络爬虫技术。
# -*-coding:utf-8-*—
'''
    题目描述:
         用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-)
    地址:
        http://tieba.baidu.com/p/2166231880

    思路:
        用正则表达式匹配图片链接,然后进行下载

'''
'''
import re
import requests

def main():
    url = 'http://tieba.baidu.com/p/2166231880'
    response = requests.get(url)
    html = response.text
    match = re.compile('img .*?src=\"(.*?)\"')
    for i in  match.findall(html):
        if 'imgsrc' in i :
            print i

if __name__ == '__main__':
    main()
'''
 
import urllib2
import re
from os.path import basename
from urlparse import urlsplit

url = "http://tieba.baidu.com/p/2166231880"
def getPage(url):
    url=url+"?see_lz=1"
    urlContent = urllib2.urlopen(url).read()
    page='<span class="red">(.*?)</span>'
    thePage=re.findall(page,urlContent)
    return int(thePage[0])
def downImg(url):
    urlContent = urllib2.urlopen(url).read()    
    spans='<cc>(.*?)</cc>'
    ss=re.findall(spans,urlContent)
    obImgs=','.join(ss)
    imgUrls = re.findall('img .*?src="(.*?)"', obImgs)
    for imgUrl in imgUrls:
        print imgUrl
        '''
        try:
            imgData = urllib2.urlopen(imgUrl).read()
            fileName = basename(urlsplit(imgUrl)[2])
            output = open(fileName,'wb')
            output.write(imgData)
            output.close()
        except:
            print "Er.."
        '''
def downLoad(url):
    numb=getPage(url)
    cont=0
    print "There are "+str(numb)+" pages."
    while cont<numb:
        cont+=1
        print "Downloading "+url+"?see_lz=1&pn="+str(cont)+"..."
        downImg(url+"?see_lz=1&pn="+str(cont))
    print 'Completed!'

downImg(url)

 

转载于:https://www.cnblogs.com/deen-/p/7205105.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值