zoukankan      html  css  js  c++  java
  • python中构造列表的语法

    #!/usr/bin/env python
    #
     -*- coding: GBK -*-

    import urllib

    from sgmllib import SGMLParser

    class URLLister(SGMLParser):
        
    def reset(self):
            SGMLParser.reset(self)
            self.urls 
    = []
            
        
    def start_a(self, attrs):
            href 
    = [v for k, v in attrs if k == 'href']
            
    if href:
                self.urls.extend(href)
        
    url 
    = r'http://www.sinc.sunysb.edu/Clubs/buddhism/JinGangJingShuoShenMo/'
    sock 
    = urllib.urlopen(url)
    htmlSource 
    = sock.read()
    sock.close()
    #print htmlSource
    = file('jingangjing.html''w')
    f.write(htmlSource)
    f.close()

    mypath 
    = r'http://www.sinc.sunysb.edu/Clubs/buddhism/JinGangJingShuoShenMo/'

    parser 
    = URLLister()
    parser.feed(htmlSource)

    for url in parser.urls:
        myurl 
    = mypath + url
        
    print "get: " + myurl
        sock2 
    = urllib.urlopen(myurl)
        html2 
    = sock2.read()
        sock2.close()
        
        
    # 保存到文件
        print "save as: " + url
        f2 
    = file(url, 'w')
        f2.write(html2)
        f2.close()

    [] 的语法是 python 中的 list comprehension, 用于构造一个列表。

    href = [v for k, v in attrs if k == 'href']
    大致上相当于:

    href = []
    for k,v in attrs:
    if k == 'href':
    href.append(v)

  • 相关阅读:
    ArrayList源码解析
    HashSet的实现原理
    Spark Streaming之四:Spark Streaming 与 Kafka 集成分析
    Spark Streaming之三:DStream解析
    Spark Streaming之二:StreamingContext解析
    curl与wget区别
    MongoDB之二(增删查改)
    Thread之九:stop
    mysql实战优化之九:MySQL查询缓存总结
    PBE加密算法
  • 原文地址:https://www.cnblogs.com/worldreason/p/1542898.html
Copyright © 2011-2022 走看看