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()
        
        
  • 相关阅读:
    线程中消费者生产者的实例代码(synchronized关键字)
    ThreadLocal管理Connection
    ThreadLocal的练习代码
    JDK中线程组ThreadGroup
    创建线程的三种方式
    ES练习代码
    window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
    ES配置文件中文版
    springmvc工作原理
    IE不兼容document.getElementsByClassName
  • 原文地址:https://www.cnblogs.com/RChen/p/392275.html
Copyright © 2011-2022 走看看