一.下载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,图片的存储