def getHTMLText(url): 7 try: 8 r = requests.get(url, timeout = 30) 9 r.raise_for_status() 10 r.encoding = r.apparent_encoding 11 return r.text 12 except: 13 return '爬取失败'
时间: 2024-02-14 14:23:47 浏览: 128
这是一个Python爬虫程序,函数名为getHTMLText,其输入参数为url,函数的作用是爬取指定url对应网页的HTML文本,并返回该文本内容。该程序使用了requests库中的get方法,设置了超时时间为30秒,并对请求返回的状态码进行了检查。如果请求成功,就将网页内容编码格式设置为自动检测,并返回文本内容;如果请求失败,就返回字符串“爬取失败”。
相关问题
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("{:^4}{:^10}{:^5}{:^8}{:^10}".format("排名","学校名称","省市","总分","培养规模")) for i in range(num): u=allUniv[i] print("{:^4}{:^10}{:^5}{:^8}{:^10}".format(u[0],u[1],u[2],u[3],u[6])) def main(): url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html' html = getHTMLText(url) soup = BeautifulSoup(html, "html.parser") fillUnivList(soup) printUnivList(10) main()
这段代码是用来爬取2016年全国大学排名前10的大学的信息,并输出到控制台上。代码首先定义了一个空列表 allUniv,然后定义了三个函数:getHTMLText、fillUnivList、printUnivList。其中,getHTMLText函数用来获取指定URL的HTML文本内容,fillUnivList函数用来解析HTML文本内容并将排名前10大学的信息保存到 allUniv 列表中,printUnivList函数用来将 allUniv 列表中的信息输出到控制台上。最后,main函数调用了以上三个函数,从而完成了爬取和输出的任务。
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: if '大学' in td.text: field=td.text.split(' ')[1] else: field=td.text.replace('\n','').replace(' ','') singleUniv.append(field) allUniv.append(singleUniv) def printUnivList(num): print('{:<4}{:<10}{:<5}{:<8}{:<8}'.format('排名','学校名称','省市','总分','人才培养')) for i in range(num): u=allUniv[i] print('{:<4}{:<10}{:<5}{:<8}{:<8}'.format(u[0],u[1],u[2],u[4],u[5])) def main(): url = 'https://www.shanghairanking.cn/rankings/bcur/2023' html = getHTMLText(url) soup = BeautifulSoup(html, 'html.parser') fillUnivList(soup) printUnivList(10) main()
这段代码是爬取 2023 年上海交通大学世界大学学术排名的前 10 名大学,并输出这些大学的排名、名称、省市、总分、人才培养等信息。具体实现过程包括:定义 getHTMLText 函数获取指定 url 的 html 文本,定义 fillUnivList 函数解析 html 并将所需信息存入 allUniv 列表中,定义 printUnivList 函数输出前 num 个大学的信息,最后在 main 函数中调用以上三个函数实现主要功能。
阅读全文