Python——python讀取html實戰,作業7(python programming)


查看源碼,觀察html結構

# -*- coding: utf-8 -*-
from lxml.html import parse
from urllib.request import urlopen
import pandas as pd
# 可能爬的這個網頁比較特殊,需要寫下面兩句話
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
# 根據鏈接獲得整個html放到doc中
parsed = parse(urlopen('https://info.zufe.edu.cn/xygk/szdw.htm'))
doc = parsed.getroot()
#讀取html中的table
# 用列表來存老師名字
all_teachers=[]
# 用字典保存主頁鏈接
link_dic={}
# 用字典保存職稱
zhicheng={}
# 找到html中有<table></table>的所有table,以列表的形式返回給tables
tables = doc.findall('.//table')
# 我們要的是第一個table
content=tables[0].text_content()
tds = tables[0].findall('.//td')
# 一條條遍歷所有td里的內容
for td in tds:
# 判斷當前屬於哪個職稱,再給zc賦值
zhi=td.findall('.//strong')
if len(zhi)!=0:
print(zhi[0].text_content())
zc=zhi[0].text_content()
print(td.text_content())
link=td.findall('.//a')
if len(link)!=0:
print("link",link[0].get('href'))
# td.text_content()存的就是姓名
# 保存鏈接
link_dic[td.text_content()]=link[0].get('href')
# 保存老師姓名
all_teachers.append(str(td.text_content()))
# 保存職稱
zhicheng[td.text_content()]=zc
print("張 帥的主頁鏈接是:",link_dic["張 帥"])
print("張 帥的職稱鏈接是:",zhicheng["張 帥"])
# 后面的各系不屬於老師去掉
all_teachers=all_teachers[:68]
#姓名,職稱,主頁鏈接整理成dataframe
dataframe={"姓名":[],
"職稱":[],
"主頁鏈接":[]}
for teacher in all_teachers:
dataframe["姓名"].append(teacher)
dataframe["職稱"].append(zhicheng[teacher])
dataframe["主頁鏈接"].append(link_dic[teacher])
dataframe=pd.DataFrame(dataframe)
print(dataframe)



