By Terrill Yang (Github: https://github.com/yttty)
在这一章,我们将尝试使用一些API来完成抓取,首先看一个查看IP地理信息的例子
In [12]:
import json
from urllib.request import urlopen
def getCountry(ipAddress):
response = urlopen("http://freegeoip.net/json/"+ipAddress).read().decode('utf-8')
responseJson = json.loads(response)
return responseJson.get("country_code")
http://freegeoip.net 这个网站根据你的IP返回对应的地址,如果将IP作为参数传入,那么将返回该IP对应的地址,如下所示
In [13]:
print(getCountry("50.78.253.58"))
In [14]:
print(getCountry(""))
In [21]:
import json
jsonString = '{"arrayOfNums":[{"number":0},{"number":1},{"number":2}],"arrayOfFruits":[{"fruit":"apple"},{"fruit":"banana"},{"fruit":"pear"}]}'
jsonObj = json.loads(jsonString)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。( 来自百度百科 )
将上面的jsonString对齐格式,可以看到他其实是长这个样子的:
{
"arrayOfNums": [
{
"number": 0
},
{
"number": 1
},
{
"number": 2
}
],
"arrayOfFruits": [
{
"fruit": "apple"
},
{
"fruit": "banana"
},
{
"fruit": "pear"
}
]
}
其中[]
框住的是数组,而{}
框住的是对象(object), 下面我们尝试对这个jsonObj进行操作
In [22]:
print(jsonObj.get("arrayOfNums"))
In [23]:
print(jsonObj.get("arrayOfNums")[1])
In [24]:
print(jsonObj.get("arrayOfNums")[1].get("number")+jsonObj.get("arrayOfNums")[2].get("number"))
In [25]:
print(jsonObj.get("arrayOfFruits")[2].get("fruit"))
In [ ]: