python爬虫代码简化1

一步步的添加爬虫功能,慢慢的也会发现一些代码可以简化。所以贴出来跟之前的做对比。代码如下:

@_@把之前的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]+'\n')
                fp.write(fw)
            else:
                fw += ("http://www.scyongdong.com" +s[i] + '\n' )
                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()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值