单元作业
请用requests库的get()函数访问如下一个网站20次,打印返回状态,text()内容,计算text()属性和content属性所返回网页内容的长度。(不同学号选做如下网页,必做及格)
import requests for i in range (20): print("第",i+1,"次访问") r=requests.get("https://www.sogou.com/") r.encoding='utf-8' print("返回状态:",r.status_code) print(r.text) print("text属性长度:",len(r.text)) print("content属性长度:",len(r.content))
输出结果:
这是一个简单的html页面,请保持为字符串,完成后面的计算要求。(良好)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <h1>我的第一个标题</h1> <p id="first">我的第一个段落。</p> </body> <table border="1"> <tr> <td>菜鸟教程(runoob.com), 24</td> <td>我的第一个标题, 我的第一个段落。</td> </tr> <tr> <td>id="first", 我的第一个段落。</td> <td>charset="utf-8", 我的第一个段落。</td> </tr> </table> </html>
输出结果:
爬中国大学排名网站内容,http://www.zuihaodaxue.com/zuihaodaxuepaiming2018.html
import requests from bs4 import BeautifulSoup allUniv = [] def getHTMLText(url): try: r = requests.get(url, timeout=30) r.raise_for_status() r.encoding = 'utf-8' return r.text except: return "" def fillUnivList(soup): data = soup.find_all('tr') for tr in data: ltd = tr.find_all('td') if len(ltd)==0: continue singleUniv = [] for td in ltd: singleUniv.append(td.string) allUniv.append(singleUniv) def printUnivList(num): print("{1:^2}{2:{0}^10}{3:{0}^6}{4:{0}^4}{5:{0}^10}".format(chr(12288),"排名","学校名称","省市","总分","培养结果")) for i in range(num): u=allUniv[i] print("{1:^4}{2:{0}^10}{3:{0}^5}{4:{0}^8.1f}{5:{0}^11}".format(chr(12288),u[0],u[1],u[2],eval(u[3]),u[11])) def main(): url = 'https://www.shanghairanking.cn/rankings/bcur/201611' html = getHTMLText(url) soup = BeautifulSoup(html, "html.parser") fillUnivList(soup) printUnivList(10) main()