跳转至

Python练习:使用库

题目1

请大家使用 pip install requests 命令安装好 requests 库。

该库可以用来构建http请求发送给服务器,并获取响应消息。 经常用于测试服务端和一些自动化工作。

使用文档可以参考这里


新浪提供了股票数据 web API服务, 可以 得到指定股票的最新行情

url为 http://hq.sinajs.cn/list=<股票代码>

以大秦铁路(股票代码:sh601006)为例,如果要获取它的最新行情,只需访问新浪的接口:

ret = requests.get(
    'http://hq.sinajs.cn/list=sh601006', 
    # 现在一定要加上下面这个消息头
    headers ={'Referer':'http://finace.sina.com.cn'} 
    )

print(ret.text)

这个url会返回一串文本,例如:

var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92,22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300,26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";

这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。

0:”大秦铁路”,股票名字;
1:”27.55″,今日开盘价;
2:”27.25″,昨日收盘价;

后面的字段我们就不需要了

请大家写一个程序,该程序实现一个函数 getStockPrice ,利用 requests库, 获取 指定某只股票的今日开盘价格。该函数的参数为指定股票的代码。

答案视频讲解


请大家点击此处链接,观看讲解视频

题目2

点击这里下载压缩包,解压后得到Python模块文件 getissue.py

这个文件里面有一个函数 getIssueBody。 可以将我们论坛上指定某个帖子的主体内容返回回来。

其参数是帖子的ID。

请大家编写一个程序使用该函数,分别返回ID 为 1 和 2 的两个帖子的内容。

要求大家编写程序的代码文件 (比如main.py)和 getissue.py 分别放在不同的目录下面。

大家可以通过 设置环境变量 PYTHONPATH, 或者直接修改 sys.path 的方式, 让解释器可以寻找到 getissue.py 这个模块文件。

答案视频讲解


请大家点击此处链接,观看讲解视频

您需要高效学习,找工作? 点击咨询 报名实战班

点击查看学员就业情况

题目1-答案

import requests
def getStockPrice(stockName):

    # 构造 HTTP 请求
    url = f'http://hq.sinajs.cn/list={stockName}'

    # 返回的response 对应响应消息的对象
    response = requests.get(url,
        headers ={'Referer':'http://finace.sina.com.cn'})

    # 返回的内容在消息体中,通过text属性获取
    info = response.text
    print(info)

    # 返回的是这种格式 大秦铁路, 27.55, 27.25, 26.91,
    # 通过split 方法截取
    price = info.split(',')[1]

    return price


price = getStockPrice('sz000063')
print(price)

题目2-答案

假设我们下载 模块 getissue.py 文件存储路径为 d:\libs\getissue.py

而我们编写的调用该函数的代码文件路径为 e:\main.py, 其内容为

from getissue import getIssueBody

# 获取ID 为 1 的 帖子的内容
print(getIssueBody(1))

# 获取ID 为 2 的 帖子的内容
print(getIssueBody(2))

那么我们运行的时候 在进入命令行的时候,输入命令

set PYTHONPATH=d:\libs

设置环境变量,这样解释器启动后, d:\libs 这个路径就会被加到 sys.path中, 当执行 import xxx 模块的时候,就会把这个路径作为模块搜索的路径之一。

如下所示

image