10.3 处理网页

下面是一个使用substring,indexOf和replace的例子,提取一个HTML片段的内容,首先访问一个html也没,然后解析这段html代码的一部分并打印:
import requests
r = requests.get("https://www.codessp.cn/31_010000.html")
print (r.status_code)
print (r.content.decode(r.apparent_encoding))
a =r.content.decode(r.apparent_encoding)
start = -1;
while True:
    # 获得开始的位置
    start = a.find("第", start + 1)
    # 获得结束的位置
    end = a.find("</a>", start + 1)
    # 找不到"第"字,结束循环
    if start == -1:
        break
    # 切出片段
    t = a[start:end]
    # 删掉中间的HTML
    t = t.replace("& nbsp;"" ")
    print(t)
如果直接得到的是一个json格式的字符串,那么就更方便了,不需要分析html代码。
JSON或JavaScript Object Notation,是一种使用文本存储数据对象的格式,它按照“键:值”这样的形式组织数据。换句话说,它是一种数据结构,将对象用文本形式表示出来。
大多数流行的编程语言都支持JSON格式,包括Python。JSON格式的文件经常用于传输数据对象。以下是JSON字符串的示例:
{
   "name": "美国",
   "population": 331002651,
   "capital": "华盛顿特区",
   "languages": [
       "英语",
       "西班牙语"
   ]
}
在这个例子中,JSON数据看起来像一个Python字典。像字典一样,JSON以键值对的形式传递数据。然而,JSON数据也可以是字符串、数字、布尔值或列表。
下面就是一个返回json的请求
https://www.codessp.cn/api/getKeywords?courseId=1&start=0
访问后得到这样的数据:
显得很杂乱,如果用www.json.cn解析一下,那就清楚多了:
用python把json字符串,转换成字典,就可以按键读取啦:
import json
country = '{"name": "United States", "population": 331002651}'
country_dict = json.loads(country) #coutry_dict已经是字典类型,可以使用字典的函数了
字典的定义和使用,详见字典