美文网首页
查漏补缺

查漏补缺

作者: 那年的茶馆 | 来源:发表于2017-11-03 11:19 被阅读0次

generator(生成器)

  1. 什么是生成器:

    • 把一个列表推倒式l = [x for x in range(10)]改成l = (x for x in range(10))就变成了一个生成器。
    • 一个函数中只要有yield那么也是一个生成器。
  2. 可迭代对象:

    • 一类是集合数据类型,如list、tuple、dict、set、str等;(字典遍历,打印出键)
    • 一类是generator,包括生成器和带yieldgenerator function

生成器和迭代器的区别:
可以理解为可以被next()函数调用并不断返回下一个值的对象称为迭代器,生成器一定是一个迭代器;生成器只是一个保存的一个算法。

beautifulsoup4常用方法

语法:soup = BeautifulSoup(html,"lxml")

  1. find_all:返回所有元素的列表,bs4语法

    • soup.find_all("a")
    • soup.find_all(["a","b"])
    • soup.find_all(id="abc")
    • soup.find_all("input", attrs={"name":"_xsrf"})
    • soup.find_all('div', class__='t')
  2. select:返回所有元素的列表,完全是CSS语法

    • soup.select("div")
    • soup.select(".nav")
    • soup.select("#nav")
    • soup.select("p #nav")
    • soup.select(".abc, .def")
    • soup.select("div[class='nav']")
    • soup.select("a[href='http://www.baidu.com']")
  3. 获取内容用get_text(),获取属性值get("value ")

创建多线程的方式

  1. threading模块

    import threading
        
    
    def func():
        print "hello world"
    l = []  
    for i in range(5):
        thread = threading.Thread(target=func, args=[])
        thread.start()
        l.append(thread)
    for thread in l:
        thread.join()
    
  2. multiprocessing.dumpy模块

    from multiprocessing.dumpy import Pool
    
    def func(a):
        print a
    pool = Pool(5)
    pool.map(func, [1,2,3,4,5]) -----> 它的结果是一个列表
    pool.close()
    pool.join()
    
  3. gevent版本

    import gevent
    from gevent import monkey
    mankey.patch_all()
    # 使用列表推导式将每个协程放到列表内
    job_list = [gevent.spawn(func, args) for i in range(5)]
    gevent.joinall(job_list)
    
  4. tesseract库的使用

    安装好以后,在终端输入:

    $ tesseract XXX.jpg text # 就会在该路径下生成一个text.txt文件
    
  5. subprocess的用法

    这个模块可以实现在代码中输入执行终端的命令。

    import subprocess
    subprocess.call(["ls","l"])  # 逗号就相当于终端中输入空格
    
  6. 通过meta传参数

    def parse(self, response):
        yield scrapy.Request(url, callback=self.func, meta={"haha":item})
    
    def parse_item(self, response)
        # 取出传递过来的meta
        item = response.meta['haha']
    
  7. 字典的get()方法

    In [1]: dict = {'name':'johnny','age':'27'}
    In [2]: print(dict.get('name'))
    johnny
    In [3]: dict.get('sex')
    In [4]: print(dict.get('sex'))
    None
    

相关文章

  • 【Android面试查漏补缺】之事件分发机制详解

    前言 查漏补缺,查漏补缺,你不知道哪里漏了,怎么补缺呢?本文属于【Android面试查漏补缺】系列文章第一篇,持续...

  • 查漏补缺

    如果想让HTML5标签兼容低版本浏览器的话,可以使用 html5shiv js来实现。注意:一定要把它引入到前面。...

  • 查漏补缺

    图文环绕和浮动 最初的CSS只是用来写文章,熟练使用float和clear两个属性来布局: float属性:指定一...

  • 查漏补缺

    1.js字符串转换成数字与数字转换成字符串的实现方法https://www.2cto.com/kf/201612/...

  • 查漏补缺

    浮动原理 1.使用之初:是为了让文字环绕图片,并且不会遮住文字。如果让图片与文字有间距,我们在浮动元素上添加。2....

  • 查漏补缺

    今天数学老师外出学习,我用了一上午的时间给孩子们查漏补缺。 首先,训练朗读:从段落与段落之间的大停顿...

  • 查漏补缺

    1 Python提供了ord()和chr()函数,可以把字母和对应的数字相互转换2 写 u'中' 和 u'\u4e...

  • 查漏补缺

    generator(生成器) 什么是生成器:把一个列表推倒式l = [x for x in range(10)]改...

  • 查漏补缺

    session 判断

  • 查漏补缺

    1 xhtml和html有什么区别? 一个是功能上的差别 主要是XHTML可兼容各大浏览器、手机以及PDA,并且浏...

网友评论

      本文标题:查漏补缺

      本文链接:https://www.haomeiwen.com/subject/uqftmxtx.html