• 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)

  • 相关阅读:
    eclipse 中 debug-config
    release稳定版本/snapshot快照版本
    nginx.config文件配置
    用 Spring Boot 和 MybatisPlus 快速构建项目
    github 生成ssh key
    Vagrant安装virtualbox
    修改linux默认时区
    《加密与解密》笔记
    manjaro 安装显卡驱动
    排序算法-C++实现
  • 原文地址:https://www.cnblogs.com/worldreason/p/1542898.html
Copyright © 2020-2023  润新知