Educode--网页抓取及信息提取
第1关:利用URL获取超文本文件并保存至本地
实现代码:
# -*- coding: utf-8 -*-
import urllib.request as req
import os
import hashlib
# 国防科技大学本科招生信息网中录取分数网页URL:
url = 'http://www.gotonudt.cn/site/gfkdbkzsxxw/lqfs/index.html' # 录取分数网页URL
def step1():
# 请按下面的注释提示添加代码,完成相应功能
#********** Begin *********#
# 1.将网页内容保存到data
webpage = req.urlopen(url)
data = webpage.read()
# 2.将data以二进制写模式写入以学号命名的 “nudt.txt” 文件:
outfile = open("nudt.txt","wb")
outfile.write(data)
outfile.close()
#********** End **********#

第2关:提取子链接
实现代码:
# -*- coding: utf-8 -*-
import urllib.request as req
# 国防科技大学本科招生信息网中录取分数网页URL:
url = 'http://www.gotonudt.cn/site/gfkdbkzsxxw/lqfs/index.html' # 录取分数网页URL
webpage = req.urlopen(url) # 按照类文件的方式打开网页
data = webpage.read() # 一次性读取网页的所有数据
data = data.decode('utf-8') # 将byte类型的data解码为字符串(否则后面查找就要另外处理了)
def step2():
# 建立空列表urls,来保存子网页的url
urls = []
# 请按下面的注释提示添加代码,完成相应功能
#********** Begin *********#
# 从data中提取2016到2012每一年分数线子网站地址添加到urls列表中
years = [2016, 2015, 2014, 2013,2012]
for year in years:
index = data.find("国防科技大学%s年录取分数统计" %year)
href = data[index-80:index-39] # 根据各个特征串提取url子串
website = 'http://www.gotonudt.cn'
urls.append(website+href)
#********** End **********#
return urls

第3关:网页数据分析
实现代码:
# -*- coding: utf-8 -*-
import urllib.request as req
import re
# 国防科技大学本科招生信息网中2016年录取分数网页URL:
url = 'http://www.gotonudt.cn/site/gfkdbkzsxxw/lqfs/info/2017/717.html'
webpage = req.urlopen(url) # 根据超链访问链接的网页
data = webpage.read() # 读取超链网页数据
data = data.decode('utf-8') # byte类型解码为字符串
# 获取网页中的第一个表格中所有内容:
table = re.findall(r'

