Python 爬虫:获取网页图片

脚本为获取某一个网页页面上的图片:(36 氪 为栗)

#coding=utf-8
import urllib
import re
import os

weburl = "http://36kr.com/" #爬取网页
tardir = "F:\\0000\\kk"     #保存路径

def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

def destDir(path):
    if not os.path.isdir(path): 
        os.makedirs(path)
    p = path.split('\\')[-1]
    if not (p==''):
        path = path + '\\'
    return path

def getSuffix(fileurl):
    return fileurl.split('.')[-1]

def getImg(html):
    reg = r'(http.:[\S]*?.(jpg|jpeg|png|gif|bmp|JPG|JPEG|PNG|GIF|BMP))'
    imgall = re.findall(reg,html)
    destPath = destDir(tardir)
    x = 1
    for imgurl,i in imgall:
        urllib.urlretrieve(imgurl,destPath+'%s.' % x +getSuffix(imgurl))
        print "完成 ".decode('UTF-8').encode('GBK') + imgurl
        x+=1

html = getHtml(weburl)
print getImg(html)
os.system("pause")


现在进行升级,下载某个网站各个页面图片:(漏洞盒子 为栗)

打开网址 https://www.vulbox.com/board  点击几页数据,可以发现规律,网站最后一个数字为页码变量:

https://www.vulbox.com/board/internet/page/页数  ,按照这个规律,可以循环读取每个页面!


#coding=utf-8
import urllib
import re
import os

weburl = "https://www.vulbox.com/board"
tardir = "F:\\0000\\kk"

def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

def destDir(path):
    if not os.path.isdir(path): 
        os.makedirs(path)
    p = path.split('\\')[-1]
    if not (p==''):
        path = path + '\\'
    return path

def getSuffix(fileurl):
    return fileurl.split('.')[-1]

def getImg(html,n):
    reg = r'(http.:[\S]*?.(jpg|jpeg|png|gif|bmp|JPG|JPEG|PNG|GIF|BMP))'
    imgall = re.findall(reg,html)
    destPath = destDir(tardir)
    x = 1
    for imgurl,i in imgall:
        urllib.urlretrieve(imgurl,destPath+'%s_' % n +'%s.' % x +getSuffix(imgurl))
        print "完成 ".decode('UTF-8').encode('GBK') + imgurl
        x+=1

n = 1
for n in range(1,6): #取前5页
    pageurl = weburl + "/internet/page/" + str(n)
    html = getHtml(pageurl)
    print getImg(html,n)
    print "【完成页面】 ".decode('UTF-8').encode('GBK') + pageurl 
    n = n + 1

os.system("pause")





  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值