实例情况
定向爬虫:只针对给定的url进行爬取
ctrl+f :网页搜索框
步骤1:从网页上获取大学排名网页内容
步骤2:提取网页内容中信息到合适的数据结构
步骤3:利用数据结构展示并输出结构
格式化输出格式
实例
import requests
from bs4 import BeautifulSoup
import bs4 #isinstance()函数需要加载bs4
def getHTMLtext(url):
try:
r = requests.get(url,timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return 'getHTMLtext函数出错'
def fillUnivList(ulist,html):
soup = BeautifulSoup(html,'html.parser')
for tr in soup.find('tbody').children: #tbody标签的所有儿子节点,可能含有字符串形式的节点
if isinstance(tr,bs4.element.Tag): #检查tr是否是标签类型
tds = tr('td') #tr('td')等价于tr.find_all('td')
ulist.append([tds[0].string,tds[1].string,tds[4].string]) #列表中的元素是列表
def printUnivList(ulist,num):
#'^'表示居中,<>分别表示左右对齐,10表示宽度为10,\t为制表符
tplt = '{0:^10}\t{1:{3}^10}\t{2:^10}'#{3}表示当宽度不够时,采用第3个参数,即char(12288)
print(tplt.format('排名','学校名称','总分',chr(12288))) #此处为格式化输出,格式为:‘{}’.format('排名')
for i in range(num):
u = ulist[i]
print(tplt.format(u[0],u[1],u[2],chr(12288)))
def main():
uinfo = []
url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2020.html'
html = getHTMLtext(url)
fillUnivList(uinfo,html)
printUnivList(uinfo,70)
main()
结果