加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
6-5-3网页数据分析.py 1.60 KB
一键复制 编辑 原始数据 按行查看 历史
tqychy 提交于 2022-11-18 12:12 . finish
# -*- coding: utf-8 -*-
import urllib.request as req
import re
# 2014年硕士研究生复试分数线-华中科技大学研究生招生信息网页URL:
url = 'http://gszs.hust.edu.cn/info/1091/1913.htm'
webpage = req.urlopen(url) # 根据超链访问链接的网页
data = webpage.read() # 读取超链网页数据
data = data.decode('utf-8') # byte类型解码为字符串
# 获取网页中的第一个表格中所有内容:
table = re.findall(r'<table(.*?)</table>', data, re.S)
firsttable = table[0] # 取网页中的第一个表格
# 数据清洗,将表中的&nbsp,\u3000,和空格号去掉
firsttable = firsttable.replace('&nbsp;', '')
firsttable = firsttable.replace('\u3000', '')
firsttable = firsttable.replace('\r\n', '')
firsttable = firsttable.replace(' ', '')
def step3():
score = []
# 1.按tr标签对获取表格中所有行,保存在列表rows中:
rows = re.findall(r'<tr(.*?)</tr>', firsttable, re.S)
# 2.迭代rows中的所有元素,获取每一行的td标签内的数据,并把数据组成item列表,将每一个item添加到scorelist列表:
scorelist = []
for row in rows:
if(row.find("firstRow")!=-1):
continue
items = []
tds = re.findall(r'<td.*?>(.*?)</td>', row, re.S)
for td in tds:
rightindex = td.find('</div>')
leftindex = td[:rightindex].rfind('>')
items.append(td[leftindex+1:rightindex])
if(len(items)==9):
items=items[2:]
scorelist.append(items)
# 3.将由省份,分数组成的7元列表(分数不存在的用\代替)作为元素保存到新列表score中,不要保存多余信息
for record in scorelist[:]:
record.pop()
score.append(record)
####### End #######
return score
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化