一步步的添加爬虫功能,慢慢的也会发现一些代码可以简化。所以贴出来跟之前的做对比。代码如下:
@_@把之前的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()