一:函数调试

用之前学过的try···except进行调试

def gameover(setA,setB):
if setA==3 or setB==3:
return True
else:
return False
try:
a=gameover(7,11)
print(a)
except:
print("Error")

  调试完毕~~~~

结果如下

输入7,8的结果

输入3,4的结果

不输入参数时,得到Error

二:Python爬虫

requests库是一个简洁且简单的处理HTTP请求的第三方库。

get()是对应与HTTP的GET方式,获取网页的最常用方法,可以增加timeout=n 参数,设定每次请求超时时间为n秒

text()是HTTP相应内容的字符串形式,即url对应的网页内容

content()是HTTP相应内容的二进制形式

用requests()打开搜狗主页20次

# -*- coding: utf-8 -*-
"""
Created on Mon May 20 10:20:45 2019 @author: guo'yu'yi
"""

import requests
try:
for i in range(20):
r=get("https://123.sogou.com/")
r.raise_for_status()
r.encoding='utf-8'
print(r)
print(len(r.text))
print(len(r.content))
except:
print("Error")

 结果如下:

获取中国大学排名

直接上代码

import requests
from bs4 import BeautifulSoup
import pandas
# 1. 获取网页内容
def getHTMLText(url):
try:
r = requests.get(url, timeout = 30)
r.raise_for_status()
r.encoding = 'utf-8'
return r.text
except Exception as e:
print("Error:", e)
return "" # 2. 分析网页内容并提取有用数据
def fillTabelList(soup): # 获取表格的数据
tabel_list = [] # 存储整个表格数据
Tr = soup.find_all('tr')
for tr in Tr:
Td = tr.find_all('td')
if len(Td) == 0:
continue
tr_list = [] # 存储一行的数据
for td in Td:
tr_list.append(td.string)
tabel_list.append(tr_list)
return tabel_list # 3. 可视化展示数据
def PrintTableList(tabel_list, num):
# 输出前num行数据
print("{1:^2}{2:{0}^10}{3:{0}^5}{4:{0}^5}{5:{0}^8}".format(chr(12288), "排名", "学校名称", "省市", "总分", "生涯质量"))
for i in range(num):
text = tabel_list[i]
print("{1:{0}^2}{2:{0}^10}{3:{0}^5}{4:{0}^8}{5:{0}^10}".format(chr(12288), *text)) # 4. 将数据存储为csv文件
def saveAsCsv(filename, tabel_list):
FormData = pandas.DataFrame(tabel_list)
FormData.columns = ["排名", "学校名称", "省市", "总分", "生涯质量", "培养结果", "科研规模", "科研质量", "顶尖成果", "顶尖人才", "科技服务", "产学研合作", "成果转化"]
FormData.to_csv(filename, encoding='utf-8', index=False) if __name__ == "__main__":
url = "http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html"
html = getHTMLText(url)
soup = BeautifulSoup(html, features="html.parser")
data = fillTabelList(soup)
#print(data)
PrintTableList(data, 10) # 输出前10行数据
saveAsCsv("D:\\python文件\\daxuepaimingRank.csv", data)

Python爬虫和函数调试的更多相关文章

  1. python爬虫基础18-Chrome调试前端工具

    01 Chrome调试 抓包工具原理 Chrome 开发者工具是一套内置在Google Chrome中Web开发和调试工具.使用开发者工具来重演,调试和剖析您的网站. 其中常用的有Elements(元 ...

  2. python 爬虫可视化函数,可以先看看要爬取的数据是否存在

    import requests url = "http://www.spbeen.com" headers = { "User-Agent":"tes ...

  3. Python爬虫:新浪新闻详情页的数据抓取(函数版)

    上一篇文章<Python爬虫:抓取新浪新闻数据>详细解说了如何抓取新浪新闻详情页的相关数据,但代码的构建不利于后续扩展,每次抓取新的详情页时都需要重新写一遍,因此,我们需要将其整理成函数, ...

  4. Python帮助函数调试函数 用于获取对象的属性及属性值

    Python帮助函数调试函数 用于获取对象的属性及属性值 刚接触Python,上篇 <Python入门>第一个Python Web程序--简单的Web服务器 中调试非常不方便,不知道对象详 ...

  5. python爬虫利器Selenium使用详解

    简介: 用pyhon爬取动态页面时普通的urllib2无法实现,例如下面的京东首页,随着滚动条的下拉会加载新的内容,而urllib2就无法抓取这些内容,此时就需要今天的主角selenium. Sele ...

  6. Python爬虫:用BeautifulSoup进行NBA数据爬取

    爬虫主要就是要过滤掉网页中没用的信息.抓取网页中实用的信息 一般的爬虫架构为: 在python爬虫之前先要对网页的结构知识有一定的了解.如网页的标签,网页的语言等知识,推荐去W3School: W3s ...

  7. [转]Python爬虫框架--pyspider初体验

    标签: python爬虫pyspider 2015-09-05 10:57 9752人阅读 评论(0) 收藏 举报  分类: Python(8)  版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  8. python爬虫 - Urllib库及cookie的使用

    http://blog.csdn.net/pipisorry/article/details/47905781 lz提示一点,python3中urllib包括了py2中的urllib+urllib2. ...

  9. python爬虫积累(一)--------selenium+python+PhantomJS的使用(转)

    阅读目录 一.Selenium介绍 二.爬虫为什么要用selenium? 三.PhantomJS介绍 四.PhantomJS安装 五.操作实战 六.在此推荐虫师博客的学习资料 selenium + p ...

随机推荐

  1. centos yum 安装golang

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum install golan ...

  2. Java——注解

    注解的产生背景以前,xml以低耦合的方式得到了广大开发者的青睐,xml在当时基本上能完成框架中的所有配置.但是随着项目越来越庞大,xml的配置也越来越复杂,维护性也随之降低,维护成本增高.于是就产生了 ...

  3. 牛客网数据库SQL实战解析(11-20题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

  4. 速记OSI七层协议模型

    OSI七层协议模型 第一层:物理层(Physical) 第二层:数据链路层(Data-Link) 第三层:网络层(NetWork) 第四层:传输层(Transport) 第五层:会话层(Session ...

  5. CentOS7(Linux)源码安装Redis

    介绍 项目中经常需要用到Redis做缓存数据库,可是还有小伙伴不会在Linux上安装Redis,毕竟我们开发的项目都是要在服务器上运行的,今天就来讲讲如何在CentOS7环境使用源码进行安装Redis ...

  6. js实现树级递归,通过js生成tree树形菜单(递归算法)

    方法封装: /** * 数据转换为树形(递归),示例:toTreeByRecursion(source, 'id', 'parentId', null, 'children') * @param {A ...

  7. MyTerm入选北极代码库计划,喜获「Arctic Code Vault Contributor」勋章

  8. 招新裁老,两面派互联网大厂,培训三个月,就拿15K,凭什么?

    看到一位朋友在发帖子求问:亲身经历,(如有谎言我名字倒过来写)一个大学同学18年毕业的.在兰州一个二本学的兽医农牧,毕业难找工作,去深圳一个机构培训了三个月吧,然后就去做大数据 算法了,然后又去做ja ...

  9. 【转】Android DrawingCache

    转自:http://magiclen.org/android-drawingcache/ 日期: 2014 年 8 月 27 日 | 作者: Magic Len 開發Android的時候,在許多情況下 ...

  10. Unity 深度冲突的解决方法

    Dillon|2014-02-12 10:00|5899次浏览|Unity(280)0 3d游戏中当2个片元距离近裁减平面 w  落在同一个区间的时候,他们的深度是相等的. 最终你所看到的结果,就是下 ...