zoukankan      html  css  js  c++  java
  • 采集练习(四) python 获得hao123导航图片分类下的美女图片

      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)
    
                
  • 相关阅读:
    gradle下载安安装教程
    mybatis 一对一association ,一对多collection
    Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js): ModuleBuildError:
    API
    VUE 自定组件,注意事项,注意事件
    IDEA设置
    正则表达式
    前端页面适配的rem换算
    webpack打包原理
    vue-cli脚手架工具根目录的babelrc配置文件
  • 原文地址:https://www.cnblogs.com/keygle/p/2950899.html
Copyright © 2011-2022 走看看