第三周_总结

队列
创建一个队列:queue_obj = queue.Queue(maxsize=30)
maxsize :表示允许存储的最
(FIFO) : 对列--先进先出
存值 : queue_obj.put( )
取值 : queue_obj.get( )
获取队列的大小 : queue_obj.qsize( )
判断队列是否满 : queue_obj.full( )
判断队列是否为空 : queue_obj.empty()
# 注意 : 队列是线程安全的,list,dict 是非线程安全的,使用的时候最好使用线程锁
多线程
什么是多任务:同时执行多个任务 例如:同时打开微信,QQ,word,优酷,浏览器
同时执行--并行
单核同时执行的任务数量只有一个,但是看上去像是在执行多个任务,是 因为切换的间隔时间级短
多核cpu:同时可以执行多个任务,假如任务量超过核心数,在某个核心下 任务会交替执行
并发和并行的概念:
并发:单核cpu同时执行多个任务,任务是同时发起的,但是并不是同时执行,而是交替执行
并行:任务数量小于或等于核心数,这个时候每一个核心都在执行任务,任务是同时执行的,
实现多任务的手段(方式):
1.多线程
2.多进程
3.协程
线程之间的操作是无序的
一个线程下面有一个主线程
线程:相当于打开一个浏览器
进程:相当于在浏览器里面打开多个窗口

  启动线程: thread.start()
  添加join的目的:为了让任务队里中的所有请求都执行完毕
  线程锁:threadlock = threading.Lock()

进程池
导入 from multiprocessing import Pool
创建一个进程池:pool = Pool()
pool.apply() 同步的方法,执行效率比较低
apply_async 是一个异步方法,可以提高任务执行的效率
func,对应的任务的函数名称
args=(),传递参数(元组)
kwds={}, 传递参数(字典)
callback=None,(执行成功后的回调)
error_callback=None,(执行错误之后的回调)

  关闭进程池:pool.close
  pool.join() :join 方法 让进程池中的任务执行完毕后,回到主线程继续执行
  pool.submit(): 向进程池中添加任务
  .add_done_callback():添加回调方法
  pool.shutdown():执行了join 方法
  dataqueue.put()   :向队列中存值
  while not dataqueue.empty():
  print(dataqueue.get())

  
  使用manage().Queue() 创建一个队列,可以实现在进程池的进程中实现数据的共享(通讯)
  q = Manger().Queue()

可迭代对象:能够执行遍历循环的都可以称为可迭代对象(可以使用 for i in 循环)
迭代器一定是一个可迭代对象
可迭代对象不一定是一个迭代器
常见的可迭代对象:list,set,dict,str,tuple
判断是否是可迭代对象的方法: isinstance print(isinstance(a,Iterable))
把可迭代对象转换为一个迭代器:data_obj = iter(data)
生成器是一个特殊的迭代器,生成器一定是一个可迭代对象,可以使用next方法取值
python 中实现生成器的两种方式
第一种:利用tuple(元祖)实现生成器
第二种;使用yield 实现生成器,一旦某个方法中出现了yield这个关键字,这个方法就不单单是一个方法了,得到的就是一个生成器

异常处理模块
创建一个浏览器驱动
导入 webdriver : from selenium import webdriver
创建一个浏览器驱动:driver = webdriver.Chrome(executable_path= '/home/tian/桌面/驱动/chromedriver' )
异常处理模块:from selenium.common.exceptions import TimeoutException,NoSuchElementException,NoSuchFrameException
TimeoutError:超时
NoSuchElementException :没有此节点
NoSuchFrameException:没有iframe
切换到子页面:driver.switch_to_frame('loginIframe')
在子页面找按钮,然后模拟点击:driver.find_element_by_id('switcher_plogin').click()
输入账号:driver.find_element_by_xpath('//input[@id="u"]').send_keys('464660217')
找到登录按钮,然后点击:driver.find_element_by_xpath('//input[@id="login_button"]').click()
登录之后可以获取到cookies信息,保存本地,可以以后使用:print(driver.get_cookies())
负责循环等待:from selenium.webdriver.support.ui import WebDriverWait
以什么方式寻找节点:from selenium.webdriver.common.by import By
添加条件模块:from selenium.webdriver.support import expected_conditions as EC
显示等待:同样可以指定一个等待时间,不过更加灵活,可以指定一个最长等待时间如果在最长时间还没找到节点则抛出异常,如果找到则立即返回节点信息
寻找节点:element = WebDriverWait(driver,10).until(
#添加寻找节点的条件
EC.presence_of_element_located((By.ID,'anony-time'))
)

创建一个浏览器驱动:driver = webdriver.Chrome(executable_path= '/home/tian/桌面/驱动/chromedriver' )
找到输框:driver.find_element_by_xpath('//input[@id="form_email"]').send_keys('18518753265')

构建一个浏览器的驱动:driver = webdriver.Chrome(
executable_path='/home/ljh/桌面/driver/chromedriver'
)
driver.get('https://www.baidu.com/')
获取a标签:a_action1 = driver.find_element_by_xpath('//div[@id="u1"]/a[3]')
将鼠标移动到a标签上: ActionChains(driver).move_to_element(a_action1).perform()
单击:ActionChains(driver).move_to_element(a_action).click(a_action).perform()
双击:ActionChains(driver).move_to_element(a_action).double_click(a_action).perform()
拖拽:a_action2 = driver.find_element_by_xpath('//div[@id="u1"]/a[5]')
ActionChains(driver).drag_and_drop(a_action1,a_action2).perform()

切换到系统的提示框:alter = driver.switch_to_alert()
执行js代码,重新打开一个窗口:js = 'window.open("https://www.douban.com/")'
driver.execute_script(js)
切换浏览器的窗口:driver.switch_to.window(driver.window_handles[0])
切换到子页面iframe:frame = driver.switch_to_frame('loginIframe') driver.find_element_by_xpath()

将图片转换为灰度图:image5 = image3.convert("L")
设置图片的伐值:pointvalue = 150

.send_keys(key) 输入关键字
.click():按钮点击

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352

推荐阅读更多精彩内容

  • 什么叫“多任务”?就是操作系统可以同时运行多个任务。(至少同时有3个任务正在运行) 单核CPU如何执行多任务? 多...
    小明坐地铁阅读 420评论 0 0
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,359评论 8 265
  • 线程 操作系统线程理论 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有...
    go以恒阅读 1,638评论 0 6
  • 进程和线程 进程 所有运行中的任务通常对应一个进程,当一个程序进入内存运行时,即变成一个进程.进程是处于运行过程中...
    胜浩_ae28阅读 5,099评论 0 23
  • 工作中时常需要收集和裁剪报纸。对于剪报,我从内心是十分排斥的,把完整的报纸裁剪成一块块的,挑选出需要的内容,粘贴在...
    张书彦阅读 396评论 0 0