天天看點

python爬取網頁圖檔代碼_[代碼全屏檢視]-爬取某圖檔網站多頁圖檔的python爬蟲

[1].[代碼] [Python]代碼

# coding=utf-8

import requests

import re

from lxml import etree

import time

import sys

reload(sys)

sys.setdefaultencoding("utf-8")

#定義一個爬蟲

class spider(object):

def __init__(self):

print u'開始爬取内容。。。'

#getsource用來擷取網頁源代碼

def getsource(self,url):

html = requests.get(url)

return html.text

#changepage用來生産不同頁數的連結

def changepage(self,url,total_page):

now_page = int(re.search('index_(\d+)',url,re.S).group(1)) #可修改

page_group = []

for i in range(now_page,total_page+1):

link = re.sub('index_\d+','index_%s'%i,url,re.S) #可修改

page_group.append(link)

return page_group

#getpic用來爬取一個網頁圖檔

def getpic(self,source):

selector = etree.HTML(source)

pic_url = selector.xpath('//ul[@class="ali"]/li/div/a/img/@src') #可修改

return pic_url

#savepic用來儲存結果到pic檔案夾中

def savepic(self,pic_url):

picname=re.findall('(\d+)',link,re.S) #可修改

picnamestr = ''.join(picname)

i=0

for each in pic_url:

print 'now downloading:' + each

pic = requests.get(each)

fp = open('pic\\'+picnamestr +'-'+str(i)+ '.jpg', 'wb')

fp.write(pic.content)

fp.close()

i += 1

#ppic集合類的方法

def ppic(self, link):

print u'正在處理頁面:' + link

html = picspider.getsource(link)

pic_url = picspider.getpic(html)

picspider.savepic(pic_url)

time1=time.time()

if __name__ == '__main__':

url = 'http://www.ivsky.com/tupian/ziranfengguang/index_1.html' #可修改

picspider = spider()

all_links = picspider.changepage(url,3) #可修改

for link in all_links:

picspider.ppic(link)

time2=time.time()

print u'耗時:'+str(time2-time1)