初学爬虫之访问goole网页与爬取中国大学排名。
作者:互联网
Requests库get()函数访问google网页20次。
1.Requests模块介绍:
Requests 是使用 Apache2 Licensed 许可证的 HTTP 库。用 Python 编写,真正的为人类着想。
Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。
在Python的世界里,事情不应该这么麻烦。
Requests 使用的是 urllib3,因此继承了它的所有特性。Requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。现代、国际化、人性化。
(以上转自Requests官方文档
导入Requests模块。
2.插入代码:访问Google网页
# -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import requests def getHTMLText(ur1): try: r=requests.get(ur1,timeout=30) r.raise_for_status() #如果状态不是200,引发异常 r.encoding='utf-8'#无论原来用什么编码,都改成utf-8 return r.text except: return"" ur1="http://www.Google.com" for i in range(20): print(getHTMLText(ur1))
运行结果如下:
(好像访问不了哦。)
爬取中国大学排名(2017年)
1.插入代码
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}^10}".format(chr(12288),u[0],u[1],u[2],eval(u[3]),u[6])) def main(): url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2017_0.html' html = getHTMLText(url) soup = BeautifulSoup(html, "html.parser") fillUnivList(soup) printUnivList(10) main()
2.运行结果。
抱歉初学者出现问题了,应该是那个网站的2017那个网页的代码有错误,代码没错。
标签:10,return,goole,爬虫,getHTMLText,中国大学,Requests,requests,def 来源: https://www.cnblogs.com/LuDuo/p/10652386.html