from urllib3 import *
from re import *
http =PoolManager()
disable_warnings()
#下载HTML文件
def download(url):
result = htp.request('GET',url)
#讲下载的HTML文件代码问uft-8格式解码成字符串
htmlStr = result.date.decode('uft-8')
#输出当前抓取的HTML代码
print(htmlStr)
result htmlStr
#分析代码
def analyse (htmlStr):
#利用正则表达式获取所有a节点,如<a href = 'a.html'>a</a>
aList = findall('<a[^a>]*>',htmlStr)
result = []
#对a节点列表进行迭代
for i in aList:
#利用正则表达式从a节点中提取href属性的值,如<a href = 'a.html'>中的a.htmlStr
g =search ('href[\s]*s=[\s]*[\'"]([^>\'"]*)[\'"]'a)
if g ! =none:
#获取a 节点href属性的值,herf 属性值就是第一个分组的值
url = g .group(1)
#将url变成绝对链接
url = 'http://localhost/files/' + url
#将提取出的url追加到result列表中
result.append(url)
return resuit
def crawler(url):
#输出正在抓取的URL
print (url)
#下载HTML文件
html = download(url)
#分析HTML代码
urls = analyse(html)
#对于每一个URL递归周期用crawler函数
for url in urls:
crawler('http://loadhose/files')