python爬虫 学习1
1 import requests
2 from bs4 import BeautifulSoup
3 import bs4
4 def gethtmltext(url): #获取html内容,利用try和except框架可以抛出异常
5 try:
6 r = requests.get(url,timeout=30) #获取url,时间限制为30秒
7 r.raise_for_status() #检查连接状态是否为200,即正常连接,如果为否则抛出except异常
8 r.encoding=r.apparent_encoding #确定编码
9 return r.text #返回为html的内容
10 except:
11 return ''
12
13
14 def fillunivlist(ulist,html): #解析html内容,提取所需数据 ulist是一个空列表,用来存取解析出来的所需数据
15 soup = BeautifulSoup(html,'html.parser') #利用beautifulsoup的html.parser来解析r.text
16 for tr in soup.find('tbody').children: #通过分析发现所需排序,学校名称,总分存在于tbody标签类的tr标签中的td标签 .children是查找tbody的子类
17 if isinstance(tr,bs4.element.Tag): #因为tr标签包含其他string,而我们所需要的只是bs4.element.Tag标签类型,所以用isinstance(obj,class)作一个判断
18 tds = tr('td') #若判断为真则 执行查找tr标签中的td标签,并赋值给tds
19 ulist.append([tds[0].string,tds[1].string,tds[2].string]) #将tds的数据追加给ulist
20
21 def printunivlist(ulist,num): #格式化输出内容
22 print('{:^10}\t{:^6}\t{:^10}'.format('排名','学校名称','总分'))
23 for i in range(num):
24 u=ulist[i]
25 print('{:^10}\t{:^6}\t{:^10}'.format(u[0],u[1],u[2]))
26
27
28 def main(): #定义一个主函数,实现具体抓取并输出
29 uinfo = []
30 url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html'
31 html = gethtmltext(url)
32 fillunivlist(uinfo,html)
33 printunivlist(uinfo,20)
34
35 main()
效果图如下:

python爬虫 学习1的更多相关文章
- python爬虫学习(1) —— 从urllib说起
0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...
- python爬虫学习 —— 总目录
开篇 作为一个C党,接触python之后学习了爬虫. 和AC算法题的快感类似,从网络上爬取各种数据也很有意思. 准备写一系列文章,整理一下学习历程,也给后来者提供一点便利. 我是目录 听说你叫爬虫 - ...
- Python爬虫学习:三、爬虫的基本操作流程
本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将 ...
- Python爬虫学习:四、headers和data的获取
之前在学习爬虫时,偶尔会遇到一些问题是有些网站需要登录后才能爬取内容,有的网站会识别是否是由浏览器发出的请求. 一.headers的获取 就以博客园的首页为例:http://www.cnblogs.c ...
- Python爬虫学习:二、爬虫的初步尝试
我使用的编辑器是IDLE,版本为Python2.7.11,Windows平台. 本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:二.爬虫的初步尝试 1.尝试抓取指定网页 ...
- 《Python爬虫学习系列教程》学习笔记
http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...
- python爬虫学习视频资料免费送,用起来非常666
当我们浏览网页的时候,经常会看到像下面这些好看的图片,你是否想把这些图片保存下载下来. 我们最常规的做法就是通过鼠标右键,选择另存为.但有些图片点击鼠标右键的时候并没有另存为选项,或者你可以通过截图工 ...
- python爬虫学习笔记(一)——环境配置(windows系统)
在进行python爬虫学习前,需要进行如下准备工作: python3+pip官方配置 1.Anaconda(推荐,包括python和相关库) [推荐地址:清华镜像] https://mirrors ...
- [转]《Python爬虫学习系列教程》
<Python爬虫学习系列教程>学习笔记 http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多. ...
- python爬虫学习01--电子书爬取
python爬虫学习01--电子书爬取 1.获取网页信息 import requests #导入requests库 ''' 获取网页信息 ''' if __name__ == '__main__': ...
随机推荐
- 从四个问题透析Linux下C++编译&链接
摘要:编译&链接对C&C++程序员既熟悉又陌生,熟悉在于每份代码都要经历编译&链接过程,陌生在于大部分人并不会刻意关注编译&链接的原理.本文通过开发过程中碰到的四个典型 ...
- 智慧矿山-选矿工艺数字 3D 可视化
前言 现代科技和工业的发展对矿物原料的要求越来越高,直接开采的原矿石往往达不到标准,而原矿通过选矿加工后则可以满足要求.选矿技术在冶金.煤炭.化工.建材和环保等部门都得到应用,对国民经济的发展意义重大 ...
- 2、JVM的内存
1.JVM中的内存结构 从OS的角度来看,JVM运行时会把一部分内存虚拟机化,所以把内存分为直接内存(未被虚拟机化的内存)和运行时数据区(被虚拟机化的内存) JVM的运行时数据区若从线程的角度来看,可 ...
- gerrit安装配置记录
gerrit安装配置 java -jar gerrit-2.13.5.war init -d gerrit Authentication method [OPEN/?]: htt Install Ve ...
- C++中try&catch
参考: https://blog.csdn.net/xueluowutong/article/details/81257654 在c++中,可以直接抛出异常之后自己进行捕捉处理,如:(这样就可以在 ...
- 引用类型之Array(二)
操作方法 concat( ) concat() 方法用于连接两个或多个数组. 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 语法 arrayObject.concat(arrayX,a ...
- 对do{ }while();一直以来的误解 -----如何理解do{ }while( );语句
在do{ }while( ); 语句中,我之前的理解是:先执行一次do{ },然后判断while( )中的内容,一般里面都是字符串或者数值作比较嘛,所以理解是:如果判断的这个东西,在这个范围中(等于这 ...
- Linux 下 svn 场景实例及常用命令详解
一.SVN使用场景实例 问题: 在使用svn做为版本控制系统的软件开发中,经常会有这样的需求:在工作复本目录树的不同目录中增加了很多文件,但未纳入版本控制系统,这时如果使用svn add命令一个一个的 ...
- OracleOggan安装并测试同步数据步骤!
Oracle Golden Gate (ogg)安装使用说明 Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递等功能. OGG支持的异构环境有: OGG的特性: ①对生 ...
- SpringBoot logback 配置文件自定义属性
添加自定义属性类 package com.cus.config; import ch.qos.logback.core.PropertyDefinerBase; import org.springfr ...