python爬虫類コード簡略化1

1241 ワード

爬虫類機能を一歩一歩追加すると、コードが簡略化されることも徐々にわかります.だから前と比較して貼り出します.コードは次のとおりです.
@_@前のurlリンクフィルタを関数として書きます.これにより、メインプログラムは非常に簡潔になります.以前定義した不要な変数もいくつか削除されました.目標駆動、そしてたくさん手を出して本当に素晴らしい~
# -*- coding: UTF-8 -*-  
import urllib
import re
#          
def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

#    url   
def getUrl(html):
    reg = r'href="(.+?)"'
    urlre = re.compile(reg)
    urllist = re.findall(urlre,html)
    return urllist

#  url    
def selUrl(gurl):
    s = list(set(gurl))
    #set   url    
    fw = ''
    for i in range(len(s)) :
        fp = open('test.txt','w')
        #  url    http....  ,     
        if "/"in s[i]:
            if "http" in s[i]:
                fw += (s[i]+'
') fp.write(fw) else: fw += ("http://www.scyongdong.com" +s[i] + '
' ) fp.write(fw) if __name__=='__main__': html = getHtml("http://www.scyongdong.com") gurl = getUrl(html) selUrl(gurl) # txt fp = open('test.txt','r') print fp.read() fp.close()