• Atom运行Python的安装配置步骤和代码范例详解


    一.下载Atom

    下载地址:https://atom.io/ 系统需win7以上版本(也可选择下载其他平台尝试)

    下载完成后双击打开Atomsetup-x64.exe后程序开始安装

    安装界面

    二.检索可用的python组件

    A ----在设置(Settings)里面Pakages查询是否有python组建,点击Install(安装),安装完成后显示Disable(禁用)

     点击Language-python 0.53.3可以查看组件的相关信息

    B--安装合适IDE UI Server和运行工具

    打开cmd运行下面命令安(pip install python-language-server[all])装python-language-server

    安装完成会有Successful字样的提示

     

    C--安装Atom中支持多种语言的UI界面

    检索atom-ide-ui安装,安装方法如同图所示,步骤同上

    D--安装IDE(集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。)

     E--最后安装运行工具

     点击setting查看,快捷键F5运行  F6暂停

    安装包所在位置:C:UsersAdministrator.atompackages

    三.运行代码范例

    1.python爬取百度图片

    # coding=utf-8
     
    """
    @author:nickhuang1996
    """
    import re
    import sys
    import urllib 
    import requests 
    import os
    import cv2
    from glob import glob
    import time 
     
    def getPage(keyword, times, page_number, pic_type):
        page = times * page_number#time每一次加一
        keyword = urllib.parse.quote(keyword, safe='/')#对含有特殊符号的URL进行编码,使其转换为合法的url字符串。中文则转换为数字,符号和字母的组合
        #print(keyword)
        url_begin = "http://image.baidu.com/search/" + pic_type + "?tn=baiduimage&ie=utf-8&word="#pic_type
        url = url_begin + keyword + "&pn=" +str(page)
        return url
     
    def get_onepage_urls(onepageurl):
        try:
            html = requests.get(onepageurl).text
        except Exception as e:
            print(e)
            pic_urls = []
            return pic_urls
        pic_urls = re.findall('"objURL":"(.*?)",', html, re.S)#index是30个图片的链接,flip是60个
        print("一共有{}个图片链接".format(len(pic_urls)))
        return pic_urls
     
     
    def download_pic(pic_urls, keyword, save_path):
        #给出图片链接列表, 下载所有图片
        print("去除了重复的图片下载数量为:{}".format(len(pic_urls)))
     
        print("
    开始下载...")
        start_time = time.time()
        for i, pic_url in enumerate(pic_urls):
            try:
                pic = requests.get(pic_url, timeout=5)
                string = save_path + '/' + str(i + 1) + '.jpg'
                
                with open(string, 'wb') as f:
                    f.write(pic.content)
                    print('成功下载第%s张图片: %s' % (str(i + 1), str(pic_url)))
     
            except Exception as e:
                print('下载第%s张图片时失败: %s' % (str(i + 1), str(pic_url)))
                print(e)
                continue
        end_time = time.time()-start_time
        print("下载结束,耗时:{:.0f}m {:.0f}s...".format(end_time // 60, end_time % 60))
     
    if __name__ == '__main__':
        keyword = ''  # 关键词, 改为你想输入的词即可, 相当于在百度图片里搜索一样
        save_path = './baidu_download/' + keyword
        if not os.path.exists(save_path):
            os.mkdir(save_path)
        #参数设置
        times = 0
        #图片参数类型
        pic_type = "flip"#"flip"/"index"
        print("图片链接关键字为:{}".format(pic_type))
        page_number = 20#flip时为60,index时为30则不会有缓存
        total_times = 3#请求总次数
        """
        如果page_number为20,则百度图片每页显示20张图片,因此对于flip形式每页会多缓存(60-20=40)张,index形式每页会多缓存(30-20=10)张,
        所以,请求4次的话:
            flip应该是 20 × 4 + (60 - 20) = 120张图片,而不是60×4 = 240
            index应该是 20 × 4 + (30 - 20) = 90张图片,而不是30×4 = 120
        示意图:
                         flip                               index
          0 ________                             ______                           0
            |      |                            |      |
            |  20  |                            |  20  |                         10
            |      |                            |      |
         20 |______|______                      |______|______                   20
                   |      |                            |      |
                   |  20  |                           _|_ 20  |                  30
                   |      |                            |      |
         40        |______|______                      |______|______            40
                   |      |      |                            |      |
                   |      |  20  |                           _|_ 20  |           50
                   |      |      |                            |      |
         60       _|_     |______|______                      |______|______     60
                          |      |      |                            |      |  
                          |      |  20  |                           _|_ 20  |    70
                          |      |      |                            |      |
         80              _|_     |______|                            |______|    80
                                 |      |                                   |     
                                 |      |                                  _|_   90
                                 |      |
         100                    _|_     |
                                        |
                                        |
                                        |
         120                           _|_
                   
        说白了,就是获取了重复的图片
        可以通过调节page_number变量查看
        """
        all_pic_urls = []
        while 1:#死循环
            if times > total_times:
                break
            print("第{}次请求数据".format(times + 1))
            url=getPage(keyword, times, page_number, pic_type)#输入参数:关键词,开始的页数,总页数
            print(url)#打印链接
            onepage_urls= get_onepage_urls(url)#index是30个图片的链接,flip是60个
            times += 1#页数加1
            if onepage_urls != 0:
                all_pic_urls.extend(onepage_urls)#列表末尾一次性追加另一个序列中的多个值
                #print("将要下载的图片数量变为:{}".format(len(all_pic_urls)))
        print("下载的图片总量变为:{}".format(len(all_pic_urls)))
        
     
        download_pic(list(set(all_pic_urls)),keyword, save_path)#set去除重复的元素(链接)
     

    源码在csdn

    关键函数urllib.parse相关函数得到关键字字符串,re.findall,图片的存储

    Python学习使用手册https://docs.python.org/3/(讲解很详细),学习一个工具最好是看官方文档,一点没错!

  • 相关阅读:
    中序遍历【递归算法】和【非递归算法】
    等价无穷小替换
    轮转访问MAC协议
    曲率
    Java I/O流 01
    Java 集合框架 04
    Java 集合框架 03
    Java 集合框架 02
    Java 集合框架 01
    Java 常见对象 05
  • 原文地址:https://www.cnblogs.com/Gouwa/p/11982755.html
Copyright © 2020-2023  润新知