前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【python爬虫】游民星空福利和壁纸帖图片爬虫

【python爬虫】游民星空福利和壁纸帖图片爬虫

作者头像
蛮三刀酱
发布2019-03-26 17:27:51
7310
发布2019-03-26 17:27:51
举报
文章被收录于专栏:蛮三刀的后端开发专栏

学习python中,写个爬虫小程序,基于2.7版本

代码源码贴在我的Github:https://github.com/qqxx6661/python/blob/master/gamerskyPic1.0.py

代码语言:javascript
复制
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import urllib
import urllib2
import re
import sys
import socket

class Tool:
    removeExtraTag = re.compile(r'_cke_saved_src="http.+?.jpg')
    def replace(self,x):
        x = re.sub(self.removeExtraTag,"",x)
        return x.strip()#strip()将前后多余内容删除

class Spider:
 
    def __init__(self,siteURL):
        self.siteURL = siteURL
 
    def getPage(self,pageIndex):
        if pageIndex == 1:
            url = self.siteURL + ".shtml"
        else:
            url = self.siteURL + "_" + str(pageIndex) + ".shtml" 
        print '准备抓取:' + url
        request = urllib2.Request(url)
        response = urllib2.urlopen(request)
        #print response.read()
        return response.read()
 
    def getPic(self,pageIndex):
        page = self.getPage(pageIndex)
        #imgre = re.compile(r'src="(http.+?.jpg)">')适合正常抓取
        imgre = re.compile(r'src="(http.+?.jpg)">')
        imglist = re.findall(imgre,page)
        print imglist
        imglist_clr = []
        for imgurl in imglist:
            imgurl_clr = tool.replace(imgurl)
            imglist_clr.append(imgurl_clr.encode('utf-8'))  #去除u'
        print '清洗多余字符完成'
        print imglist_clr
        x = 0
        for imgurl_clr in imglist_clr:
            print '正在保存第%s页的第%s张'%(pageIndex,x+1)
            urllib.urlretrieve(imgurl_clr,'picture_%s_%s.jpg' % (pageIndex,x+1))
            x+=1


socket.setdefaulttimeout(5.0)   #设置全局超时5秒
tool=Tool()
print '请输入游民星空网址:'
inURL = raw_input()
inURL = inURL[:-6]  #去除.shtml
spider = Spider(inURL)
for x in range(1,20):
    try:
        spider.getPic(x)
    except urllib2.URLError,e:
        print e.code
        print '已经没有下一页了'
        break;
print '所有图片保存完毕'

之后会逐渐完善,比如保存至文件夹,超时自动重试,多线程等。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年07月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档