您的位置:首页 > 编程语言 > Python开发

采集练习(四) python 获得hao123导航图片分类下的美女图片

2013-03-08 22:49 477 查看
  python实现前几天用php 实现的下载图片功能。

python 版本 2.73

部分代码来自 http://www.php10086.com/2013/01/1278.html

遇到的问题 :

1、采集执行到30页就出错,程序中断 (问题没解决) 我只好采30页;

2、 open 函数打开文件时候 'w' 模式 保存到本地的图片无法打开, 后来 使用 'wb'模式 问题得到解决;

3、 没有后缀的图片,默认加上 .jpg 后缀;

4、获得 json 数据必须 带上 User_Agent Referer 否则无法获得。

以下是代码 :

# -*- coding: utf-8 -*-
import os,json, urllib2, time,socket
socket.setdefaulttimeout(10)
startTime = time.time()
dir = 'D:\python\hao123pic\pic\\'
if not os.path.isdir(dir):
os.mkdir(dir)
j = 1
i = 1
while i < 3:
nums = int(time.time()) * 1000
url = 'http://pic.hao123.com/screen/meinv_meinv/'+str(i)+'?v=' + str(nums) + '&act=type'
request = urllib2.Request(url)
request.add_header('User-Agent', 'Mozilla/5.0')
request.add_header('Referer', 'http://pic.hao123.com/meinv_meinv?style=xl')
opener = urllib2.build_opener()
data = opener.open(request).read()
jsonData = json.loads(data)

for n in jsonData:
if n['picurl_orig']:
req = urllib2.Request(n['picurl_orig'])
imgData = urllib2.urlopen(req).read()
imageName = dir + os.path.basename(n['picurl_orig'])
ext = imageName.split('.')
if len(ext)<2:
imageName = imageName+'.jpg'
file_object = open(imageName, 'wb')
file_object.write(imgData)
file_object.close()
print('img %s_%s is ok' % (i, j))
j += 1
else:
endTime = time.time()
print(endTime - startTime)

i += 1

endTime = time.time()
print(endTime - startTime)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐