龙空技术网

python--使用 Web API获取网页信息

ZhangYiHui 186

前言:

现在咱们对“python获取html”大约比较着重,小伙伴们都想要了解一些“python获取html”的相关资讯。那么小编在网上汇集了一些有关“python获取html””的相关知识,希望大家能喜欢,姐妹们一起来学习一下吧!

'''

本章中,将学习如何编写一个独立的程序,并对其获取的数据进行可视化。这个程序将使用web应用编程接口(API)自动请求网站的特定信息而不是整个网页,在对这些信息进行可视化。由于这样编写的程序时钟使用最新的数据来生成可视化,因此即便数据瞬息万变,它呈现的信息也都是最新的。

'''

1 使用Web API

'''Web API 是网站的一部分,用于与使用非常具体的URL请求特定信息的程序交互。这种请求称为API调用。请求的数据将以易于处理的格式(如JSON或CSV)返回。依赖于外部数据源的大多数应用程序都依赖于API调用,如集成社交媒体网站的应用程序。'''

1.1 Git和GitHub

'''本章的可视化将基于来自GitHub的信息,这是一个让程序员能够协作开发项目的网站。我们将使用GitHub的API来请求有关该网站中Python项目的信息,然后使用Pygal生成交互式可视化,以呈现这些项目的受欢迎程度。GitHub的名字源自Git,Git是一个分布式版本控制系统,让程序员 团队能够协作开发项目。

'''

1.2 使用API调用请求数据

'''GitHub的API让你能够通过API调用来请求各种信息。要知道API调用是什么样的,请在浏览器的地址栏中输入如下地址并按回车键:

'''

1.3 安装requests

requests包让python程序能够轻松地向网站请求信息以及检查返回的响应。要安装requests,请

执行类似于下面的命令:

pip install  requests
1.4 处理API响应及响应字典

'''下面来编写一个程序,它执行API调用并处理结果,找出GitHub上星级最高的Python项目:'''

import requests# 执行API调用并存储响应url = ';r = requests.get(url)print("status code:",r.status_code)# 将API响应存储在一个变量中response_dict = r.json()#使用方法json将将这些信息转换为python字典print(response_dict.keys())#打印response_dict中的键#打印与total_count相关的值print('total repositories:', response_dict['total_count'])#探索有关仓库的信息repo_dicts = response_dict['items']print("Repositories returned:",len(repo_dicts))# 研究第一个仓库repo_dict = repo_dicts[0]print("\nkeys:",len(repo_dict))for key in sorted(repo_dict.keys()):    print(key)Status code: 200dict_keys(['total_count', 'incomplete_results', 'items'])status code: 200dict_keys(['total_count', 'incomplete_results', 'items'])total repositories: 8762437Repositories returned: 30keys: 78allow_forkingarchive_urlarchivedassignees_urlblobs_urlbranches_urlclone_urlcollaborators_urlcomments_urlcommits_urlcompare_urlcontents_urlcontributors_urlcreated_atdefault_branchdeployments_urldescriptiondisableddownloads_urlevents_urlforkforksforks_countforks_urlfull_namegit_commits_urlgit_refs_urlgit_tags_urlgit_urlhas_downloadshas_issueshas_pageshas_projectshas_wikihomepagehooks_urlhtml_urlidis_templateissue_comment_urlissue_events_urlissues_urlkeys_urllabels_urllanguagelanguages_urllicensemerges_urlmilestones_urlmirror_urlnamenode_idnotifications_urlopen_issuesopen_issues_countownerprivatepulls_urlpushed_atreleases_urlscoresizessh_urlstargazers_countstargazers_urlstatuses_urlsubscribers_urlsubscription_urlsvn_urltags_urlteams_urltopicstrees_urlupdated_aturlvisibilitywatcherswatchers_count
1.5概述最受欢迎的仓库

对这些数据进行可视化时,我们需要涵盖多个仓库。下面就来编写一个循环,打印API调用返回的每个仓库的特定信息,以便能够在可视化中包含所有这些信息:

--snip--# 研究有关仓库的信息repo_dicts = response_dict['items']print('Repositores returned:',len(repo_dicts))print('\nSelected information about each repository:')for repo_dict in repo_dicts:    print('\nName:',repo_dict['name'])    print('Owner:',repo_dict['owner']['login'])    print('Stars:',repo_dict['stargazers_count'])    print('Repository:',repo_dict['html_url'])    print('Created:',repo_dict['created_at'])    print('Updated:',repo_dict['updated_at'])    print('Description:',repo_dict['description'])
1.6 监视API的速率限制
大多数API都存在速率限制,即你在特定时间内可执行的请求数存在限制。要获悉你是否接近了GitHub的限制,请在浏览器中输入:

标签: #python获取html #python如何获取svn路径